{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "#本章需导入的模块\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import warnings\n",
    "warnings.filterwarnings(action = 'ignore')\n",
    "%matplotlib inline\n",
    "plt.rcParams['font.sans-serif']=['SimHei']  #解决中文显示乱码问题\n",
    "plt.rcParams['axes.unicode_minus']=False\n",
    "import sklearn.linear_model as LM\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn.model_selection import cross_validate,train_test_split\n",
    "from sklearn import neighbors,preprocessing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, '加权K-近邻的测试精度(1-测试误差)变化折线图\\n(最优参数K=11)')"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi0AAAGMCAYAAAAWQZKkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOyde3hU1bn/P28SCGiCJiBBCZdECUqwwQQL8SCoba3V2lZPbb0cL/1p7e20Pef0Yi9a25622ov2rtZqay+o1dPWXtTW1goYDVSSEjUoQQhIUIKSKIlCIMn7+2PtgZkhmSSzM9lZ+H6eZx4me6/vWt+9ZxbrnXXboqoYhmEYhmGMdrKiNmAYhmEYhjEYLGgxDMMwDMMLLGgxDMMwDMMLLGgxDMMwDMMLLGgxDMMwDMMLLGgxDA8QEenjWE4UXoYDEckbQtoDrv1g5414zYYxGCxoMbxFRA4VkZMHmfbbIvLxDPmYIiLVcX8XishsETlNRD4kIr/oy6eIXCAipYMsZqGI/C3p2HIRqewj3wHviYh8IRb0iMjYftJcIiLHichbRCQr6dztIvK2pGMfFpEvDaLs04G/DJQuSPt+IK3PTUTmi8ghA6S5QERmBe9z+gkOTxaRs0SkUkQmxR3PF5HyNHwVisj/xv09TURuTrrH7xKRzw4yvwUi8qZBpBszBI8ni8iDwXsRkQIRKReRc0XkehG5Nin9HBE5I+7v+SJyafA+e7DlGsZAePtLzTCAScBvgKMGkXYv8DqAiHwZF7D3xp2vU9U/BefGqernggbpUaBaVdelyLsY+D8ROVNVG4D7gD3Ac8ALwApgZ7wgaPxuBm4DPh0cWxFc0x5gDnCMqj4fSI4HHovTHx6k/VdSvmOAL4rI67jA4Irgug8BfgncBCguELgukN0lIveq6t1J1/UWoAM4HzgH+M/gnswI7meOiHwdOBSoBCYDY0XkLUCnqp4VeHon8KXgugCygbkiUhP8nQv8TVW/kHQt04EPAfGN4RLgGlV9KwNzJnCHiHwK+BbQHpS9CbgEEOBdwDZgPfCfQBnw0aR8jgHmAc8Ct4jIElXdBcwE7hORy4EWYDXuM48xEfiRqt4QeM/B3ftXcEHo0aq6AbgSeEVVe4M0vcAfgd+KyAJVXZV0X3KBPbp/k625wLuDayGuLFS1O076HRF5UVWvF5ErgeNVtb+AsAv3GQPMBp4A/gpsBp4HNial/zRQH/f3VOA9ItIC/JeIvFtVewNvN+K+Tzv6KTtW5ptV9ZkUaYw3IBa0GF4iIvm4Bqg17lgBEP8LcAPwY9z3XIHe4D/8XGAJrgEH9x8+wJ/i8hoD/Ar44gABC6q6OujFuRz4BO4/+4+qalMK2Q+B7wFvEpG7gA/gGvUzcY3a8ljAIiJ/Ak4EdonIe4CvAROAw4H1QefAFFXNU9W9InImcCpwXHCNvwPOBaYE13Qz0BPX6H0M1/j+Gdgd19DtDu7b5ewPHNqB/8M1Yu/HNTzfxAVQ7wz+/XmgjTEBqFHV/xGRQmCMqrYGPQuVqrq6n3v0VeDTqronuA9vBu7EBRgDoqpfDQLBV3HB3cdxgcQtuGCuCOgJrhHgR8AfROQEoDFWbuw+qOrNIvJqoEFVnxKRdwALcN+1GlV9Z6x8EbkMyI+zdBnwQfYHA4+KSCewPUhfA4wBPqCqa0Xkk8BPiQvaAv4J9IhILzANF5TuEJFuYA0uIB8D3Ij7LGJB8vm4AAfcd60nOCfAJ4FbVfV1EakASoE8EZmHC2A2qOp7+7rPInI0LpD9mIh8ABccv4b7Lj0sIpOBt+GCHoLr/4qq3iEiE4BlwNtV9aW4PGvi7pNh7MOCFsNXHsX1HkwRkTW43o4vAW/F/eorwv2afhj4BXA00IZrvK8CFqrqrwFE5BRgbVL+1wIvqOrNgzGjqr/DBQfgGoPzRCT+l+QY4E+quklErsI17rcD3wCW4npcYsHCW4GH4rRHA8eq6isi8jVcQ3gpsDgWUInIhuDfKcA8Vf2LiBwX6BuB7wTv98aVE/O+TUROwjWoHxWRWGMxFTgdF5iME5E/4hrwb+J+1bfierqKcAFLBZCHCwLXsL/XQQANAsbzgnxjw0h/FpEjgRxV3ddIBWlnqGr8r/ePANfgPteUBEMSF+DubWwI5yZcb0h/96FbRM7G9arUicgeXEAzASgUkUXAWOB5EXkiSNcD3IsLho6I6z0CF1T/KC7/20Tkl3FB2H3A91R1WfB3DpAVO6+qW0TkdRGZqqpb4/KpEJGP4Xo23g+sCQKAV3Dfnfeo6h1Jt+Q64J/xgUEcVwNvxwVIAF8GjsD1MH0T+N8+NASeD8V9d/8b12O0BHgZOAs4TUT+gQtg1ovIQ0GgvDfQCu4zOQR4UESm4gK/84LsEz4fwwALWgxPUdV5IrIY+C9VPVdEfobrBXglaLBnAhcEv1hPArYCXwv+cx+H+yUZYwmuMYxxYnCsbCAf4uZn3IhrmM9W1Y244ZJduP90r8X19ryKa7jfhWtoTgV+H6S9BDe08pMg27OBO+KKiR/GivnVpB6gWJrxwLeC64+xGzc8Nb4P/xfieh2eV9XL4jwgIp8GulX1e3HHyoDFuF///wDeDFwIdOICsbHB+XeIyKGqek9wb7pxv6gn4oaQFgdZFgDLgRogfnioFEgeGvh/wbUPhrHAe3A9V98IjnXhPocDCAK8m3D3aImqHh93bj5wtaq+J+5YEa5xfzOup2Uz8G/xwzFBo5wjIlmxoRHgziBI00A3SfZPoxmDG9KL7y1chRsa3Be0xPwAi/q57s+ISKmqfilIfw4uWH+0j+v+MnAa8A5VfQ1AVc+JK+M8XFBaJiKrcYHYGFzb8WVcQHw8rvfqaFzv3rVAE/Csqp4WlHM0MCs4HuPruM95I+6zvwU3RGcY/WJBi+Ezk9k/PHQYblilL87GDaX8j4gUqeo3RWRn0PDMBLaq6otx6U/DzXs4l6CHQkT+gGtk4vlZMA8jNj8j1vociZvLsCcYNrpbVTcF5zYHaTtwjenrwfyIzXGN1yu4huCRfq7nn8BtInK7ql4eHOsFUNXmYE7JVPY3avFDIAmo6p3Br+F7g+v8K/AmXKDzLdyv7fj0K8XNl/kArrv/d7jg5cykrB9X1ceD9+NwQwXVwVyKhcDPgnP3qOpiDqQAF4TGl62SNE826LX67yTts6p6ioi8DxccxhiDCyYPIJg7caqIPAt0i8hXccM5CnwFNwwTn74VF5jV4AKyTwLvFpGe4PqeCLQ5QT5NIjI2NsQiIguBb8Qa9bjryQrSxYam2oN7ETsvuCD5IlXdEPTOxCa6jgdews1F+quI/Bo3p+p63BDg+UmXfSnwN9zQTPJ9mYELyNbgApcnVXWhiJwXpL8iztNk3LDoq6r6sojcgasrxwW9c0cE13ETiUHLr4Bv44aw6oHPknqei2FY0GJ4zWz2/yc4gT6CFnFLa6/H9WqsBi4Ske/hJjpeiOtO/06S7F7cvI+7ROTHqrpLVd/NwPQEv6IlrtHpa+nqrbihlB7cL/EZ7B/CAPg88LSI3K2q24NjjwYN4hTgc6paIyLfEZG3q+pf4zNX1ZeCuQVZuK75GKnqe2yexttFZBmugTsCN2EymStwjeE0XI/QHbheqTuD82fgAr9Y0HIosF3cKqU1QCH7A6rr+/GzA9crkxJV/SZuCKOvc73iJvMeGhwqwgW5Kf/fU9Ue4EvBnJFnVfVuEfmyiIyJH8JK4ofADUFgtQM4LZhfFB9UrA6G3hQXGK4Lei/iycJN5P5q8PckXAAd86biJiP/Q0S+jZsA3SEiH8H1stThelTmxeYsicjxQXkEf/8b8EXg76r6vvjCRWQ88CQuaF2PGzY6Dje02h+n4YYELxGRElxAuw733ftwoJ+pqn9Ous7PB+dqA/0SYK2I3J6iLOMNjgUths8sZv9/7ofRd9f/Bbjhh1bcr9AqVe0RkVtw/8H/M+k/U4CNqvpIME/kg8APhuDpUuDBuL+zSNpaQFXfKyL5qtoRDMEcoapNsV6EYDLkX3HzRGI9EifHzWmJcQOuoViOG54BQNzy60twv66PwQ0t1OHmmMzG9TgcQBDgxU+gXYubKJwdNOSIyDG4eS4PBK923JyEt7J/OG0KicNbU3EN07dwvV4AW4J/F4jIS6p6V5KdjbgGLW3ELXe+Dhd43Y+b+NyIu6fj6ec+BNrDkw49gwsQVvWRHOC3QIGIHIYLyp4MgpcxQANwpaq+Kcj7QtwwyJKkeTxjcBOk44cDq3FzRvYRBC5n4Hp0rgHeqaq7RWQBrvfim7GAJUi/J/bdEpHv4nqf/sj+YCo+713i5ngdiRsS2y0is3HDX/1xHS7ovQG4X1X/MyirCtfLdCXBCrk4enFBy4tx19GOWzU3nv3fE8NIwPZpMbwkmLT3JvY3In32tOAaqE/F/og1voG2HZiRNP8jnq8DnxU3KXQwTML1Qnwr7lg2fTQOwD3BL8oLcXMDYoi4/TneRj/zL+L4PW6ex2EkLqn+FPC/qroc1wg8jZv4uhK3siN5uSq4IYiHgZOCvytxcxQew02oPDkIAqpwgWKsZ+Y63H2/VVVPUdVTOLD3pAJ4TlX/C9fD0ga8D9cY39dHwELQmD8jbvJruvw/4PeqWosLxupw34fluHvR514xInIb++dWTAt6Jv6M2zvlOBGZliS5DviCqv4bbljo97ig7GRVXaCqV8blfQVurshGXO/ZMyKyLRhmegzXgMfSznK3Yl9v2z5UtSv4fG/FDQVdjrufZ6vqCynuyY3AfOCppGueEQzzED/pN+AduCFJ6DsIPxH3uX4NN18ptnHg+uDYRbigbl9xceWcHPhuAm5X1W5V7YhPZxjxWE+L4SvfwQ3hjBORibhVK924/S9ewf3H+kQQpOwMAo/s4D/mq3C/YKtxv+geE5Gf4yYC7kNVHxCRVlzj1+8qIhH5BHACbinwTcD4uKGETwOtwdDIeFWNBSLn4+YTNMbNJ4gtze4APqiqsTktY0gcHopNGu4NNGcQrNQRt+FbBfC+4Bfy+3DLXH8EfDWYg5O80VgJrlfjo4Hf6bgeqm8H9+QLuKDoXt2/4ip+Qmw2cKXs31xsX09L0PNwHK6HA1V9UdzGZKtxQ0An0T/Xsn//m44U6Q5A3Cqqa3Dfh1iPy4dxPU13A6cEPW5j4zSH4uZJvYYL4s7BBXzP4XownsR9PlOAK4J7WIwLQJ4Rt7HesbgewB8AvxGRj6tb3l0Y3JM8XA/LS0GZ7wXOiJ8jEhzPwQ05fSbFNR6Jmy80CfcZ/QuYJW7V09a4IUpw9UFUdUug7QWOEhEJemU+jJvHcqG4ierFwF5x2wicyv4gLiFoCepeLS7AqAneFwRDV+W4YOXduDpxkap+gLgeLlVdHvTIvAcXTD0c59naJ+NAVNVe9vLqhfvPbROuh+EUXKPxNdwci5ogzRHAtXGam3BLZn+Fm1g5Nu7csbgeiOI0vFTh5mlMxjX2X8VtJrcFNyyzFdc49wDnJWknAd8HcoO/l+PG/pPLuCIuTQVQFrw/EjcR9rPAhLjz7w3eP4xbQQWuEf4BrsFpBB6Jy38acGbw/gQgO6n8e3DDT5Pjjv0cOD14fzFung24oGB5XH7n4wKmxbgeqPuBv+Mmz/4s8PIP4C5gah/X/hbc0MpQP5eJwCeD99cAt8SduzH4ftyCG/aYGhzPAS6P+04cmpTnx3BBy1lx6T8T3LO1wX06PC79f+Hm/nw6uO+x5d7rcEHb6uB9S9zfjbgG/Czg0n6u7ZeB7xrcEMu0IP+zgV8H+e0F5sZp/g14MO7vY4Lyng1edcCC4NwFuB6j04HPxe5j3Gf96yQ/0+PeFwfX/IXg/uTi5uj0Au+Lu//P4+pNf69O4Lio/6+x1+h7iWqfiwoMY1QjInmq2jlwyswjIjmauPNowjncf97ZwC5NnK+QaV99ThwVkUNU9fUh5CPAYar6StyxXNxy6J4+0mZr4tLfMbgArQK38/BLSZpSYJYmTSgeTvr6jERkvB64amagfApVtS3pmOB2l32yj/R5uPsx0FDfUDxMwS3t350iTWT1QxJXP8WOHaXBsJW4jSG7h3rvDQOwoMUwjAOJGzYYUa1PvFGu0zBGEzYR1zCMBCTcQwqLgGeDeSSIyK0i8q5gIu87UujyReT7fazaiU9zqYgcISI/E5GzReSDIjJdRK4VkeQ9SDKKuK3ufzySZRqGYUGLYRhxyP6HFN4S/P0pEVkvIsuSXmtE5Dd9ZHEubhl5bPhpHG4+z3bg5mBCanKZY3DzQV4HukTkgWD5bjKvAt/FTbhW3OTQl3ArVxJW2IjIZSJyd/C+SERakyYP93f9S0Tk730cP1ZE9q24UfdgzL3iNlszDGOEsKDFMIx4Eh5SSPCwPNykz/jXUyQ90C6Y2/FJ3CqqGIp7IvE63CqZ5Pkgx+I2Q8vCTai+DLcU/VER+VAf/tbgJrNW4zavK8ft3LoqyG+suAcxxnMbcIe6JcL9IvsfyJiTdPwY3DLm/CTJF3G7LNvSXMMYIWxJmWEYQL8PKRyDWxI9Lin5YbhVJ/FcgFs9NEdEvoLrEZmJW3bcEZSRA5yjqs2BZhduo7Ne3IP5PoBbZnwHcHrSvJFTcMu334J7SvEm3MZlvcDyYIJqL27VS+yarsCtaPn34O8fAclPK/6bql5M/w9k/Chub5Ub4g+qaqeIrMTtrVKLYRgZxybiGoYB7Hto4MdV9aPB3wOurgn2OenGbe63GveE3y8B/1D31ORHcHM//ktVFwVBSw/u2Uq/xe2J0o17cN7OQF8QHN+D2233/+E2N/sP3JLbDtyy2twg7auqermIXI9bnXSviFyGG+Yqxz31+B+DuH7BbSX/ZXWb5MUfnwEsU9WZSZr3AwWqmrDHj2EYmcGGhwzDiLHvIYXBUt1lItIpIjXBqyPufY3s38X1GNxwzc243pfeuOXFx7B/y37U7Xiqqvqkqs7CbVy2DrdfzWzc8MzncPNXzlXVOaq6Erc1/iG4HYQVt+fLPbgdf48Nsp+OG8qKsRC3R865g7n4/lYCDbBCKOGBhoZhZBYLWgzDiLHvIYWq2qmqC3BByN3BayNuU7m64O/ngbeoapOqPqiqCcMnwaTeXJImyQbnJgdDSI/ggpa9uA3NpuAm5H4Ltz39d8VtZ5+NG76pwW2Udidul9slwKtBWXMJdt4N+CduqOgycbvHIiI/ErdtfvzrVyHu2STsycSGMWJY0GIYRoz+HlL43uCVgxvSmYrbwfZIVd3ZR/p43UO4npFk2nDByhLcjq4v4IZ/Yk/lfhU3D+VVoFVVW3E7z76Ke27UR4GXgo3qfoHb6bhZVbviymhW1fXAHwi2w1fV/1TVKUmvi1PflpQsAuoHTGUYxrBgE3ENwwDcQwrFPcBvkarWxJ16FzALtx37qbgelj/gejr6RNwzhz5L0qRWETkb2Bms5LlTRCpxK5SuxM1VuR33uIEf4HpX3ha3i/Ak3Cqhu3BzYH4lItm4p2r/HPhEP3a+AawSkeu1j4cPpou45/JUqOrq4crTMIzUWE+LYRjxXAtcF2z29gtcr8rdwJm44GIZ7nlKY4H3B5N348kCxuOGb55R1YdwT1guCSatxh4qGGMdLuh4P25ey7txS5RvAt4a/9iDIOCIDeV8Dzf0dC7w18D3F0XknOQLUtVGXI/Pp5LPheT7uBVPhmGMELZ6yDCMBETkLcDRwAPAi7HnC4nIBtzTtWfiJsuejluh8x+xzeRE5E7cAxPPAy5W1ReD4xfiJsq2AT8PenVygXtxK3y24ua33KuqT/fhKRv4DW546BuqukFEFgd+/lNV/ykib8IFEhfGys0UQVnvUtWvZbIcwzASsaDFMIzICIaRdtozfAzDGAwWtBiGYRiG4QU2p8UwDMMwDC+woMUwDMMwDC+woMUwDMMwDC/wfp+WSZMm6cyZMzOS9549exg7duyIa33X++w9rN68+6n32XtYvc/ew+p99h5WH7X3VNTV1b2sqkf0eVJVvX5VVVVppnjkkUci0fqu99l7WL1591Pvs/ewep+9h9X77D2sPmrvqQBWaz9tvg0PGYZhGIbhBRa0GIZhGIbhBd7v0zJ//nxdvTozj/5ob2+noCC9p86H0fqu99l7WL1591Pvs/ewep+9h9X77D2sPmrvqRCROlWd39c562lJQUdHRyRa3/U+ew+rN+9+6n32Hlbvs/ewep+9h9VH7T1dLGhJwbhx4yLR+q732XtYvXn3U++z97B6n72H1fvsPaw+au/pkrGgRURuF5FaEbm6n/MlInK/iDwqIjcExw4TkQdF5CER+b2IZGY91SDp6emJROu73mfvYfXm3U+9z97D6n32Hlbvs/ew+qi9p0tGghYRORfIVtVqoFREZvWR7JvA/6rqyUCxiJwCXATcqKqnA9uAMzLhb7CsW7cuEq3vep+9h9Wbdz/1PnsPq/fZe1i9z97D6qP2ni6Z2lzuFOCe4P1DwCJgfVKaMqA+eL8dOExVb4o7f0Rw/ABE5ErgSoCjjjqKZcuWJZyfMmUKJSUlNDU1UV5ezooVKw7Io7q6mubmZoqLi2ltbWXLli0J56dOnUpvby9r166lrKyMmpqaA/JYtGgRTU1NlJSU0NLSwtatW/ed6+zsZMOGDRQVFdHS0kJJSQm1tbUH5LF48WIaGxspKyujubmZbdu27dMvW7aMmTNnUlhYSGtrK8XFxaxatSr5XrBkyRIaGhooLy+nqamJ7du379MDlJaWkp+fT1tbG0VFRSRPXM7JyWHRokXU19czb948GhsbE/QAs2bNIjc3l87OTgoLC6mvr0/IIzc3l+rqaurq6gBoaGigvb09Ic3s2bPJzs5m9+7d5Ofn09DQkHB+/PjxLFiwgNdffx2A+vp6du7cmZBmzpw59PT00NvbS25uLk8//XTC+by8PADq6uqoqqpi9erVdHZ2JqSZO3cuXV1dZGVlkZ2dzdq1axPOx8qP5bFq1Sp27dqVkKaiooKOjg7GjRtHT0/Pvgocu28FBQVUVFTsy6O2tpaurq6EPCorK2lrayMvL4+uri7Wr1+fcN8nTpxIeXk5a9asobKykpqaGrq7uxPymD9/Pq2trRQWFtLR0XHA5zZ58mTKyspobGykoqKC5cuXkzz5fsGCBbS0tNDT08OmTZvYtGlTwvnB1qfdu3fT2dnZb30qLi6mubm53/qkqqxdu7bP+gQwbdq0lPWps7OT3t7ePutTjP7qU+y+9Vef4umrPsXf977q044dOxLySK5PyZ9bfH2qqqoasD51d3cf8P9grD7F8uivPu3du5etW7f2W5/mz5+fsj51d3ezdevWfuvThAkTqKys7Lc+dXZ20t7e3md9ipGqPsXuXV/1KZ6+6lPyfU+uTxs3bkzII7k+Jethf30qKiqira0tZX1S1QP0MLj2qbi4eN9nP9T2CaCrq4vOzs602idw933Tpk1ptU/xDNQ+HUB/G7iEeQG3AxXB+9OBz/WR5mrg68DZuIAmL+5cNfDwYMqyzeVGn95n72H15t1Pvc/ew+p99h5W77P3sPqovaeCFJvLZaqnpRMYH7zPo49hKFX9mogsAj4D/EJVOwFEpBD4IfDvGfJmGIZhGIaHZGoibh1uSAigAtjUT7o1wHTgRoBg4u29wOdVdXOGvA2adNeg121u5+EXsqnb3D5w4mEuezToffYeVm/e/dT77D2s3mfvYfU+ew+rj9p7umRkczkRmQA8CjwMvAM4HzhPVa9OSvcV4DlV/VXw90eAbwCxyQ43q+pvUpWVyc3l0qFuczsX3baSPd29jM3JYukVC6maEc2HaxiGYRi+MeKby6nqTtxk3JXAqarakBywBOmujQUswd83q2qBqp4SvFIGLJkmNql0KKzcuIOuvb30Kuzp7mXlxh0Di4ap7NGi99l7WL1591Pvs/ewep+9h9X77D2sPmrv6WLb+A8zdZvbee/Nj6NAlsC9H6qmamZh1LYMwzAMwwtsG/806WsJ2EDkj8tBgYJcoVdhZ1f3gJrhKnu06H32HlZv3v3U++w9rN5n72H1PnsPq4/ae7pY0JKC5H01BsP9T76ICFy9cBwzJh7CN+5/hu6e3hEpe7ToffYeVm/e/dT77D2s3mfvYfU+ew+rj9p7uljQMszc/9SLvHlmIRPHZ/G5M45l/fZO7q1ridqWYRiGYXiPBS3DSFNrB89t7+SdbzoSgDPmTqFqRgE3PNTEa2kOExmGYRiG4bCgZRiJDQ29fe4UwG1h/MWzjuPlzi5+smLjAGrDMAzDMFJhq4dSsHPnTiZMmDDo9G+7cTmFh47lNx+qTtB+7M56Hn6mlWWfPpUphw3ucd5DLXs06X32HlZv3v3U++w9rN5n72H1PnsPq4/aeyps9VCatLW1DTptU2sH67d3clYwNBSvvertx9LTq9z4t8E/FXMoZY82vc/ew+rNu596n72H1fvsPazeZ+9h9VF7TxcLWlIQe2LwYIgNDZ0RDA3Fa6dPPIRLq2dyb10Lz7y4s78s0i57tOl99h5Wb9791PvsPazeZ+9h9T57D6uP2nu6WNCSgqEs6XrgqRc5cWYhk/PH9an9z9OOYcK4MXzjgWeGvezRpvfZe1i9efdT77P3sHqfvYfV++w9rD5q7+liQUsK1q9fP7h0saGh44/sV3v4IWP5+GnH8Oj6l1ne9NKwlT0a9T57D6s3737qffYeVu+z97B6n72H1UftPV0saBkG7n/KDQ29Ixga6o+Lq2cwvdBtONfT6/cEaMMwDMMYaSxoGQb2DQ1NSL0yKDcnm6vOOJZ1rR38X92WEXJnGIZhGAcHFrSEZH1rB02tiUNDqTjz+CmcMP1w23DOMAzDMIaIBS0pmDhx4oBp+hsa6k8rIlx91nFs7+jip4/2v+HcYMpORZR6n72H1Zt3P/U+ew+r99l7WL3P3sPqo/aeLra5XAp6e3vJykod153+3eUcPn4s93y4ekjajy6t45FnX2L5Z07pc1hpMGWnIkq9z97D6s27n3qfvYfV++w9rN5n72H1UXtPhW0ulyZr1qxJef657W5o6MzjD5yAO5D2s28/lu7eXm78W1NaZQ9ElHqfvYfVm3c/9T57D6v32XtYvc/ew+qj9sQ55eAAACAASURBVJ4u1tMSgu//fT3fe7iJlZ9/C0UDTMLti6/+aS13PN7Mg59czOwp+RlwaBiGYRh+YT0taVJTU5Py/ANPvciJMwr7DFgG0gJ8/LRjyMvN4boHD9xwbjD6VESp99l7WL1591Pvs/ewep+9h9X77D2sPmrv6WJBSwq6u/tf3fPc9g7WtXb0OTQ0kDZGwaFj+fhps1i27iUeXZ+44dxg9KmIUu+z97B68+6n3mfvYfU+ew+r99l7WH3U3tPFgpY0uf/JbW7V0CCXOvfHJSfNoLhgPF+3DecMwzAMIyUWtKTJA0+9yPwZBWnNZYkntuHcs9s6+F19yzC5MwzDMIyDDwta0uC57Z3B0FC4XpYY73zTkcybdjjfeWgdu/b0DEuehmEYhnGwYauHUtDZ2dnn47d/8PB6vvv3Jmo/9xamHNZ3T0t/2v54YlMb591Sy6feVsbH3zJryPqw5Q+n3mfvYfXm3U+9z97D6n32Hlbvs/ew+qi9p8JWD6VJa2trn8fvf9INDfUXsKTS9seJMws5o3wKNy/fwPaO3UPWhy1/OPU+ew+rN+9+6n32Hlbvs/ewep+9h9VH7T1dLGhJQWFh4QHHBjs01Jd2IK56x7Hs6e7le39fn5Y+bPnDpffZe1i9efdT77P3sHqfvYfV++w9rD5q7+liQUsKOjo6Djj2wFMvAvCOuamDlr60A1Ey6VD+Y+EM7lr1PN94cB11m9uHnEeY8odLH2XZUevNu596n72H1fvsPazeZ+9h9VF7TxcLWlKwceOBDzSMrRpKNTTUn3YwLJl9BArc++QOLrptZdqBS7rlD4c+yrKj1pt3P/U+ew+r99l7WL3P3sPqo/aeLha0DIENL3Xy7LbhWzXUF2tf2IkE77v29rJy446MlWUYhmEYPmFByxB44Ek3NJTJoGVh6URyx7iPRYGjDhufsbIMwzAMwycsaBkC9w9yaCgMVTMKWHrFQt5ZOobDxudwy/IN7N5re7cYhmEYRsaCFhG5XURqReTqfs6XiMj9IvKoiNwwWN1IMnny5H3vhzo0FK8dKlUzCvjoomK+d/4JrGvt4Jt/eXbIeYQpP6w+yrKj1pt3P/U+ew+r99l7WL3P3sPqo/aeLhnZXE5EzgXepaqXicjPgOtUdX1SmnuAG1V1pYj8BrgZKBxIl0wmN5fr7u4mJycHgB8+vJ4b/tZE7edP48hBDNnEa8OU/eU/NnLH45u44wMncsrswX9Jhqv8kdb6rjfvfup99h5W77P3sHqfvYfVR+09FVFsLncKcE/w/iFgUR9pyoD64P124LBB6kaMxsbGfe/vf+pFqmYUDCpgSdaGKftz7ziW2UX5fPreJ3m5s2vI+rDlj7TWd71591Pvs/ewep+9h9X77D2sPmrv6ZKpnpbbgR+oaoOInA5Uqur1SWmuBsYDK4EbgROA7w+kC7RXAlcCHHXUUVVLly5NOD9lyhRKSkpoamqivLycFStWHOCxurqa5uZmiouLaW1tZcuWLQnnp06dSnFxMc3NzeQUTOX079dwwbFjefvMMfvSLFq0iKamJkpKSmhpaWHr1q0JeUybNo2ioiJaWlooKSmhtrb2AB+LFy+msbGRsrIympub2bZtW8L5mTNn8nJ3Lhf8/F+cVFrIZaW7EJF950WEJUuW0NDQQHl5OU1NTWzfvj0hj9LSUvLz82lra6OoqIjknqmcnBwWLVpEfX098+bNo7GxkR07ElctzZo1i9zcXDo7OyksLKS+vj7hfG5uLtXV1dTV1VFVVUVDQwPt7YnLtWfPnk12dja7d+8mPz+fhoaGhPPjx49nwYIF+/Kor69n586dCWnmzJlDT08Pvb295Obm8vTTTyecz8vLY/78+fvyWL16NZ2dnQlp5s6dS1dXF1lZWWRnZ7N27dqE8xMmTKCysnJfHqtWrWLXrl0JaSoqKujo6GDcuHH09PSwbt26hPMFBQVUVFTsy6O2tpaursSgs7Kykra2NvLy8ujq6mL9+sROxYkTJ1JeXs6aNWuorKykpqbmgMfBz58/n9bWVgoLC+no6DhgGeLkyZMpKyujsbGRiooKli9fTnKdX7BgAS0tLRQVFdHW1samTZsSzg93fSorK6OmpuaAPEaqPhUWFtLa2kpxcTGrVq1KOG/1yeqT1af9RFWfTj311H57WlDVYX/hgo+FwftzgS/0k24R8Afg6qHo4l9VVVWaKZYtW6aqqj/4e5POuOrP+sIrrw9ZG7bsGD+r2agzrvqz/uLx5kjKHymt73rz7qfeZ+9h9T57D6v32XtYfdTeUwGs1n7a/EwND9Wxf2inAtjUT7o1wHRcT8tQdCOCBhH0UIeG4rVhy45x2UkzWVJ2BF+//xmaWgfeiXC4yx8pre968+6n3mfvYfU+ew+r99l7WH3U3tMlU0HLfcDFInIj8D6gUUS+1ke6z+Am477ej+7+DPkbNBtHYEO5wSAifOe8CvJyc/jEXf+yZdCGYRjGG46MBC2quhM3qXYlcKqqNqjqAUuYVfVaVf1VCt2rmfA3FGLPGjrz+CkRO4Ej8nP59nlv4tltHXz7r+sGFhiGYRjGQUTG9mlR1XZVvUdVtw2cOrwuU9z/1DYqpx8+pKGhTHLasUVcUj2D22uaWdH0UtR2DMMwDGPEyMjqoZEkk/u0rG3ZwZk/WsnVZx3HFSeXDkm7a9cuxo9PP9BJpd+9t4ezf1jDK7v28pdPnszEvNwRLT+TWt/15t1Pvc/ew+p99h5W77P3sPqovaciin1aDgruqXVL5tKZz9LS0hKq7FT6cWOy+cEFJ/Dq63u56rdP9jkhKpPlZ1Lru968+6n32XtYvc/ew+p99h5WH7X3dLGgJQW1W3ZTOf1wjjp86NFkUVFRqLIH0h935ASuesex/P2Z7Sxd9fyIl58pre968+6n3mfvYfU+ew+r99l7WH3U3tPFgpZ+aH75NdZtfy3tVUNtbW2hyh+M/gMnzeTkWZP42v1reW574jLokSg/E1rf9ebdT73P3sPqffYeVu+z97D6qL2niwUt/bB/1VB6QUvyLoiZ0GdlCTecV8EhY3P4xF1r6Orevwx6JMrPhNZ3vXn3U++z97B6n72H1fvsPaw+au/pYkFLP9y7eguFucKLr+6O2kpKJk8Yxzf//U2sfXEn37Fl0IZhGMZBjAUtffDnJ19g047XaetSLrptJXWb2wcWRcjb5hTxHwun89NHm6lZ/3LUdgzDMAwjI1jQ0gdPbX2V2CMJ93b3snLjjpTpRwNfPHMOx0zO43/uWUPba3uitmMYhmEYw44FLX1w+pwp5I7JIktgTE4WC0snDjmPKVPC7aA7VP34sdl8//x5tL++hw/9ajXLto8N1UMUxv9IX/to0pt3P/U+ew+r99l7WL3P3sPqo/aeLra5XD/UbW7nsaZW/q2siKoZBUPWd3V1kZt74KZvmdZf+4en+UXtZgTIHZPF0isWjrj/qK59NOjNu596n72H1fvsPazeZ+9h9VF7T4VtLpcGVTMKOHXK3rQafICmpqZQ5aerPyLffYkU2BNiaCuM/6iufTTozbufep+9h9X77D2s3mfvYfVRe08X62lJQW9vL1lZ6cV1YbRh9HWb27nopyvZ3d0LwI8vPIGz3nTUiJUfVuu73rz7qffZe1i9z97D6n32HlYftfdUWE9LmqxYsSISbRh91YwCln5wIWfMzCEvN5sb/9bEq7v2jlj5YbW+6827n3qfvYfV++w9rN5n72H1UXtPFwtaDkKqZhRw/rG5/PSSE9m843U+fte/6O7pjdqWYRiGYYTCgpaDmOqjJ/LVd89lRdNLfOOBZ6O2YxiGYRihyInagJFZLlwwnabWDn72WDNlRXmc/+bpUVsyDMMwjLSwnpY3AFefdRyLy47g6vue9mKjPMMwDMPoC1s9lAKf18An61/dtZdzbnqM9tf28IePLWL6xEMyVv5ou/aR1Jt3P/U+ew+r99l7WL3P3sPqo/aeCls9lCbNzc2RaDOhP2z8GG6/9ER6FS7/xRN07E69ouhguvaR1Jt3P/U+ew+r99l7WL3P3sPqo/aeLha0pKC4uDgSbab0JZMO5eaLKml++TU+cde/6Ontv5ftYLv2kdKbdz/1PnsPq/fZe1i9z97D6qP2ni4WtKSgtbU1Em0m9ScdM4kvv6ucR9a9xHUPPJOR8kfrtY+E3rz7qffZe1i9z97D6n32HlYftfd0saAlBVu2bIlEm2n9fyycwaXVM7itppl7nug73cF67ZnWm3c/9T57D6v32XtYvc/ew+qj9p4uFrS8QbnmnXM4edYkvnjfU/yzuS1qO4ZhGIYxIBa0vEHJyc7iRxdUMq3gED786zq2tL0etSXDMAzDSIkFLW9gDjtkDLddOp/unl6u+MVqOru6o7ZkGIZhGP1iQUsKpk6dGol2JPWlR+Rx00VVPPdSJ5+MW1H0Rrj2TOjNu596n72H1fvsPazeZ+9h9VF7TxfbXC4Fu3btYvz48SOujUL/q9pNXPOHRj60uJTPn3ncG+rah1Nv3v3U++w9rN5n72H1PnsPq4/aeypsc7k08XnjnqHqL66eycULZ/CTFRv59l+f5fo//ou6ze0jUvbBpDfvfup99h5W77P3sHqfvYfVR+09XaynJQXd3d3k5KT3TMkw2qj0e3t6Ofemx3hq606yBMbmZLH0ioVUzSjIeNkHi968+6n32XtYvc/ew+p99h5WH7X3VFhPS5rU1NREoo1KPyY7i1NnTwagV2FPd29aD1j08dqHS2/e/dT77D2s3mfvYfU+ew+rj9p7uljQYiSwZPZkcnPc10IVKqYdHrEjwzAMw3BkLGgRkdtFpFZEru7nfIGIPCAiq0XkJ/0dM0aWqhkF3PnBhZw8NQcRuOOxTfSmeEaRYRiGYYwUGQlaRORcIFtVq4FSEZnVR7KLgaXBuFW+iMzv55gxwlTNKODy43O59uxy/v5MK9/667qoLRmGYRhGxnpaTgHuCd4/BCzqI80OYK6IHA5MA7b0c8yIiEuqZ3DRguncsnwDv61ridqOYRiG8QYnI6uHROR24Aeq2iAipwOVqnp9UpoZwHXAs0Ax8DHgqORjqrq3j/yvBK4EOOqoo6qWLl2acH7KlCmUlJTQ1NREeXk5K1asOMBjdXU1zc3NFBcX09raesDDn6ZOncqUKVPYsmULZWVlfU46WrRoEU1NTZSUlNDS0sLWrVsTzk+bNo2ioiJaWlooKSmhtrb2gDwWL15MY2MjZWVlNDc3s23btoTzM2fOpLCwkNbWVoqLi1m1alXyvWDJkiU0NDRQXl5OU1MT27dvT0hTWlpKfn4+bW1tFBUVkbzaKicnh0WLFlFfX8+8efNobGxkxw43Abe7V7lh9W6ee0W55f3HcfRhQmFhIfX19Ql55ObmUl1dTV1dHRUVFTQ2NtLenrhkevbs2WRnZ7N7927y8/NpaGhIOD9+/HgWLFjAE088wYknnkh9fT07d+5MSDNnzhx6enro7e0lNzeXp59+OuF8Xl4e8+bNo6GhgaqqKlavXk1nZ2dCmrlz59LV1UVWVhbZ2dmsXbs24Xx+fj5VVVXU1dVRVVXFqlWr2LVrV0KaiooKOjo6GDduHD09Paxbl9gbVVBQQEVFxb48amtr6erqSkhTWVlJW1sbeXl5dHV1sX79+oTzEydOpLy8nDVr1lBZWUlNTQ3d3Ym7Fs+fP5/W1lYKCwvp6Ohg48aNCecnT55MWVkZjY2NVFRUsHz5cpLr/IIFC2hpaWHixIns3LmTTZs2JZwfbH3asGED06dP77c+FRcX09zc3G99WrhwIRs3bjyo61OMWbNmkZubS2dn54D1qaqqioaGhpT16ZBDDjmgLsTqUyyP/urT3r1795XZV32aP3/+vjz6qk/HHXcc3d3d/danCRMmUFlZ+YarT0VFRbS1taWsT7Nnz+bxxx8nmcG0T8XFxWzYsIFjjz02rfZp6tSpHHnkkaOyPp166qn9rh5CVYf9BXwfWBi8Pxf4Qh9pfgZMCN7/Dy4IOeDYQGVVVVVppmhsbIxEO9r07a916ZJv/UOr/vch3dL22oiW7ZvevPup99l7WL3P3sPqffYeVh+191QAq7WfNj9Tw0N17B8SqgA29ZGmADheRLKBBYD2cywySkpKItGONv3hh4zltktPpKvbPaPotQGeUTSavI+03rz7qffZe1i9z97D6n32HlYftfd0yVTQch9wsYjcCLwPaBSRryWluQ64FXgVKATu6udYZLS0pD+PI4x2NOqPmZzHjy+spKm1g//+zZqUK4pGm/eR1Jt3P/U+ew+r99l7WL3P3sPqo/aeLhkJWlR1J24y7krgVFVtUNWrk9L8U1XLVTVPVd+mqp19HcuEv8GSPAY4UtrRql9cdgTXvHMOD61t5TsP9b+iaDR6Hym9efdT77P3sHqfvYfV++w9rD5q7+mSmT14AVVtZ/8KIuMg4bKTZtLU2slNyzYwqyiPc04ojtqSYRiG8QbBdsQ1hoSI8NV3l7OwtJCrfvsU9c+n91BFwzAMwxgqFrQYQ2ZMdhY3X1TFkYeN48pf1rH1lV0DiwzDMAwjJBa0pGDatGmRaH3QFxw6ltsvnU/X3h4++IvVvL5n/4qi0e49k3rz7qfeZ+9h9T57D6v32XtYfdTe08WClhQUFRVFovVFf8zkfH544Qk8u21nwooiH7xnSm/e/dT77D2s3mfvYfU+ew+rj9p7uljQkgKfl5ONlP6U2ZP54llz+GtjKzf+rWlEyx6NevPup95n72H1PnsPq/fZe1h91N7TJSPb+I8k8+fP1+RttIeLrq4ucnNzR1zrm15V+fzvnuLuJ7bw/fPnccZxk7zxPtx68+6n3mfvYfU+ew+r99l7WH3U3lMhIv1u4289LSno61kMI6H1Te9WFM1lQUkhn7q3gQ/ftoy6zemvKvLp2kdT2WH1PnsPq/fZe1i9z97D6n32HlYftfd0saDFGBbG5mTx4VOOpqdHeWRLNxf9dGWowMUwDMMwkrGgxRg21r6wExH3vqu7l5Ubd6QWGIZhGMYQsKDFGDYWlk5kbM7+r9SbSwojdGMYhmEcbFjQYgwbVTMKWHrFQhYemY0CL3V0RW3JMAzDOIiw1UMp6O3tJSsrvbgujNZ3/d7uHt763RUcfshY7vvoSUhszGgEyo5ab9791PvsPazeZ+9h9T57D6uP2nsqbPVQmjQ2Nkai9V3/7DNruWJRCQ1bXmF1GpNxfb528+6n3mfvYfU+ew+r99l7WH3U3tPFelpS4PMa+KjX//dKDidd/zDzZxby00v6DJgzUnbUevPup95n72H1PnsPq/fZe1h91N5TYT0tadLc3ByJ1nd9c3Mz48dmc/HCGfz9mVY2vNQ5YmVHrTfvfup99h5W77P3sHqfvYfVR+09XSxoScG2bdsi0fquj2kvOWkmY7KzuL1maF/ug+HafdT77D2s3mfvYfU+ew+r99l7WH3U3tPFghYjY0zKy+XfK4v5bV0LL3faSiLDMAwjHBa0GBnlipNL6Oru5Ze1m6O2YhiGYXiOBS1GRjn6iDzeelwRv6rdxK49PVHbMQzDMDzGgpYUzJw5MxKt7/pk7ZWLS2l/fS//Vz+4R5kfTNfuk95n72H1PnsPq/fZe1i9z97D6qP2ni4WtKSgsDD9bejDaH3XJ2tPnFlAxbTDuf3RjfT0DrzE/mC6dp/0PnsPq/fZe1i9z97D6n32HlYftfd0saAlBa2trZFofdcna0WEK08uZdOO1/nb2oHzPZiu3Se9z97D6n32Hlbvs/ewep+9h9VH7T1dbHO5FOzatYvx48ePuNZ3fV/a7p5eTr1hGZPzx/Hbj5yUsbKj1pt3P/U+ew+r99l7WL3P3sPqo/aeCttcLk1WrVoVidZ3fV/anOwsrlhUSt3mduo2t2Ws7Kj15t1Pvc/ew+p99h5W77P3sPqovaeLBS3GiHHe/GIOGz+GW1dsjNqKYRiG4SEWtBgjxiFjc7h44QweWttK88uvRW3HMAzD8AwLWowR5ZKTZjAmK4vba6y3xTAMwxgaFrSkQEQi0fquT6WdnD+Oc06Yyr2rW9jRz9b+B+u1j3a9z97D6n32Hlbvs/ewep+9h9VH7T3tcm31kDHSrG/t4G3fXcF/v7WMT751VtR2DMMwjFGErR5Kk4aGhki0vusH0s4qyue0Yyfzy9pN7N574Nb+B/O1j2a9z97D6n32Hlbvs/ewep+9h9VH7T1drKclBd3d3eTk5Iy41nf9YLS1G3ZwwU9X8o1zjufCBdOHreyo9ebdT73P3sPqffYeVu+z97D6qL2nIpKeFhG5XURqReTqfs4XiMgDIrJaRH6SdO4mETk7U94GS1NTUyRa3/WD0S4sLeRNxYdx26Mb6U3a2v9gv/bRqvfZe1i9z97D6n32Hlbvs/ew+qi9p0tGghYRORfIVtVqoFRE+pq4cDGwNIim8kVkfqA9GZiiqn/KhLehsH379ki0vusHoxURPnhyKRtffo2/P5O4HfTBfu2jVe+z97B6n72H1fvsPazeZ+9h9VF7T5fM9O3AKcA9wfuHgEXA+qQ0O4C5InI4MA3YIiJjgJ8CD4jIu1X1D31lLiJXAlcCHHXUUSxbtizh/JQpUygpKaGpqYny8nJWrFhxQB7V1dU0NzdTXFxMa2srW7ZsSTg/depUent7Wbt2LWVlZdTU1ByQx6JFi2hqaqKkpISWlha2bt2671xnZycbNmygqKiIlpYWSkpKqK2tPSCPxYsX09jYSFlZGc3NzWzbtm2fftmyZcycOZPCwkJaW1spLi4+YBdCEWHJkiU0NDRQXl5OU1MT27dv36cHKC0tJT8/n7a2NoqKikgeTsvJyWHRokXU19czb948GhsbE/QAs2bNIjc3l87OTgoLC6mvr0/IIzc3l+rqaurq6gA33tne3p6QZvbs2WRnZ7N7927y8/M5ZMc6Jo4TvvPnfzH2pfGMHz+eBQsW8PrrrwNQX1/Pzp07E/KYM2cOPT099Pb2kpuby9NPP51wPi8vD4C6ujqqqqpYvXo1nZ2dCWnmzp1LV1cXWVlZZGdns3bt2oTzsfJjeaxatYpdu3YlpKmoqKCjo4Nx48bR09PDunXrEj63goICKioq9uVRW1tLV1fiaqnKykra2trIy8ujq6uL9evXJ9z3iRMnUl5ezpo1a6isrKSmpobu7u6EPObPn09rayuFhYV0dHQc8LlNnjyZsrIyGhsbqaioYPny5SQPCS9YsICWlhZ6enrYtGkTmzZtSjg/2Pq0e/duOjs7+61PxcXFNDc391ufVJW1a9f2WZ8Apk2blrI+dXZ20tvb22d9itFffYrdt/7qUzx91af4+95XfdqxY0dCHsn1Kflzi69PVVVVA9an7u7uA/4fjNWnWB791ae9e/eydevWfuvT/PnzU9an7u5utm7d2m99mjBhApWVlf3Wp87OTtrb2/usTzFS1afYveurPsXTV31Kvu/J9WnjxsStGZLrU7Ie9tenoqIi2traUtYnVT1AD4Nrn4qLi/d99kNtnwC6urro7OxMq30Cd983bdqUVvsUz0Dt0wGo6rC/gNuBiuD96cDn+kgzA7gT+BJwKzAGuBz4HTAF+Drw8YHKqqqq0kzxyCOPRKL1XT8U7e2PbtQZV/1Z6za3DUvZUevNu596n72H1fvsPazeZ+9h9VF7TwWwWvtp8zM1p6UTiD1JKY++h6GuBT6sql8FngU+AJwA3Kqq24BfA6dmyJ8xSnjfidOYMC6H2x61zeYMwzCM1GQqaKnDDQkBVACb+khTABwvItnAAkCB54DS4Px8YHOG/A2K0tLSgRNlQOu7fijavNwcLlo4g788vY3NO14LXXbUevPup95n72H1PnsPq/fZe1h91N7TJVNBy33AxSJyI/A+oFFEvpaU5jrcsNCrQCFwF25Y6VQRWQF8FPhOhvwNivz8/Ei0vuuHqr3spJlkZwk/q2kOXXbUevPup95n72H1PnsPq/fZe1h91N7TJSNBi6ruxE3GXQmcqqoNqnp1Upp/qmq5quap6ttUtVNVO1T1PFVdrKrVqrq1r/xHira2tki0vuuHqi2aMI53z5vKPatbaH9tzxvq2keT3mfvYfU+ew+r99l7WL3P3sPqo/aeLhnbp0VV21X1nmB+ipcUFRVFovVdn472ysWl7Nrbw69Xbn7DXfto0fvsPazeZ+9h9T57D6v32XtYfdTe08W28U9BmJ12w+7S67M+HW1ZUT6nzD6C22o2cs3dj1O3uX1g0TCWP1z6N9rndrDoffYeVu+z97B6n72H1UftPV0saDFGDaeUHcGru7r5/XN7uei2laECF8MwDOPgw4IWY9Tw2p79G6ft3tvLLx7fxJ7u3ggdGYZhGKMJC1qMUcPC0knk5rivpAB/bHiBk67/B9/8y7M8v+P1aM0ZhmEYkZOpbfwPCsI8wTLs0y991qerrZpRwJ0fXMhvHqnjvFMq6ezq5s5Vz3Prio3cvGwDJ8+axIVvns5b5xQxJrv/eNvHax8Nep+9h9X77D2s3mfvYfU+ew+rj9p7uogmPYfEN+bPn69RTQgyRoZtr+7mntVbuPufz/PCq7uZlJfL++YXc/6J05k+8ZCo7RmGYRjDiIjUqXuY8gHY8FAKkh8KOFJa3/XDXfaUw8bxibfM4tGrTuPnl53IvGmHc8vyDSz+9iNcfPsqHnzqRfb29ParD1v+SGmj1vvsPazeZ+9h9T57D6v32XtYfdTe08V6WlLQ29tLVlZ6cV0Yre/6kSj7xVd3cc8TLfzmCdf7ckS+632Ze9RhbHipk+qjJ1E1o2DIZddtbqd2w8tp6+1z81Pvs/ewep+9h9X77D2sPmrvqUjV02JBSwqeeuopjj/++BHX+q4fybJ7epXlTdu5c9XzPPzMduK/zWOzs8jOkkGX29Or7OnpRYDcMVksvWLhkAMX+9z81PvsPazeZ+9h9T57D6uP2nsqc9zN9wAAIABJREFUUgUtNhE3BTt27IhE67t+JMvOzhJOO7aI044t4voHn+EnyzeiuNVHFdMO44Tpgw86/vV8O09sakeBPd29rNy4Y8hBi31ufup99h5W77P3sHqfvYfVR+09XUIFLSJyqqo+MlxmDCMMb5szhTse38Sevb2MHZPF595x3JCCjrrN7Vz405V0dfeiCsdPPSyDbg3DMIyhknJASkSyReR3IjJGRP4QHIvXfDWj7gxjCFTNKGDpFQs5d9aYtIZ2YkuulxTnkCVwW00z3T22uZ1hGMZoIWXQoqo9wDjgGmCWiPwP8CsROVdExgMvjoBHwxg0VTMKeOfRY9OaRBvTf2BuLl8/53hWNL3E1x94ZpgdGoZhGOkymOGhXmA5cCpwNHAIMAd4H/CPzFmLnlmzZkWi9V3vs/eY/pSpU2lq7eRnjzVTVpTPBW+ePmJlR6X32XtYvc/ew+p99h5W77P3sPqovadLvz0twZDQX4FeVX0YeBnYCijwS1wQc1Dv6pabmxuJ1ne9z97j9V8481gWlx3BNfc9Te2GwU06Gy3efSs7ar3P3sPqffYeVu+z97D6qL2nS79Bi6ruBT4BiIj8HKgETgNygVuBy4FzRsJkVHR2dkai9V3vs/d4fU52Fj+68ARmTDyEjyytG9Tzj0aLd9/Kjlrvs/ewep+9h9X77D2sPmrv6TLQnJZ1uJ6VrwDrcIFKDvAuVf0zUJpxhxFSWFgYidZ3vc/ek/UTxo3h9ktPBODyXzxBx+69I1b2SOt99h5W77P3sHqfvYfV++w9rD5q7+kymO3sDsVNxn0U2AVco6p7gnPtmTI2GvB5i+Q38vbQw62fOelQbrqokuaXX+MTd/2Lnt7+N2Qcbd59KTtqvc/ew+p99h5W77P3sPqovafLYIKWTcB/A9OBG4CrReQfIvJL4NcZ9GYYo4aTjp7EV95dziPrXuI6W1FkGIYRCQOuHlLVy/s6LiLHASXD7sgwRikXLZjB+tZObqtpZlZRHu8/cXArigzDMIzhYaDN5bKC/VgQkTPiz6nqM6r6QCbNGcZo4+qzjuPkWZO4+r6nWbUxmm2sDcMw3qgMNDx0DHCJiNwBzBeRH4nIgyLyZxH5m4j8KPMWo8Pn5WRv5KV0mdS7FUWVTCs8hI8srWdLW+KKotHsfTSXHbXeZ+9h9T57D6v32XtYfdTe0yXlU55FZAGwEDgTqMHtzfIj3H4t1wO/B36oET4qOpNPeTaM/mh++TXe8+PHKJqQy28/chL548ZEbckwDOOgINVTngfqafk8cB5wLHBi0jlV1R9EGbBkmrq6uki0vut99j5YfUmwomjDS6/xybvX7FtR5IP30Vh21HqfvYfV++w9rN5n72H1UXtPl4F6WmYBS4D3AsuAtwNPAa/ggpnrVPWXmbfZP9bTYkTJr2o3cc0fGrlycSlfOPO4qO0YhmF4T5ielk5gM3AdsAe4GmgGHgc+A3QMo89RR0NDQyRa3/U+ex+q/uLqmVy8cAa3rtjIvau3eOV9NJUdtd5n72H1PnsPq/fZe1h91N7TZaAlzzuAzwJ/CNJWAicBP47bYO6gpb09/b3zwmh91/vsPR39l86ew8aXO/nc757k5KNy+Pjh09N+yrR9btHoffYeVu+z97B6n72H1UftPV0G6mn5M7AbNzz0EeA/cLvj/l+wguhhERnMk6IN46BlTHYWHzr5aHp7YVlLN+ffWssTm9qitmUYhnHQMdCzh07H9bLci9vG/2FgPPAtVX2nqr5FVbszb9MwRjdPvfAqIu793h7l43fW07DllWhNGYZhHGQMZhv/14BbgDtU9Qu4CbgnZNSVYXjGwtKJjM3JIgsYky10dffynpse4/O/e4r21w76kVTDMIwRYTBBy71Asar+A0BV21X1hyJykYhU9icSkdtFpFZEru7nfIGIPCAiq0XkJ0nnikTkX0O5kEwwe/bsSLS+6332nq6+akYBS69YyJUnHcXdV1az4rOncvm/lXDP6i2cesMy7lz1PL0pHrQYpuzh0vt434dL77P3sHqfvYfV++w9rD5q7+ky0Db+3weuBH6WdHwMcBjwmIgc2ofuXCBbVauB0mDpdDIXA0uDZU35IhK/vOk7uGGoSMnOzo5E67veZ+9h9FUzCvh/C6dSNaOA/HFjuPqdc3jgEyczuyifL/z+Kc656bEBh4zsc4tG77P3sHqfvYfV++w9rD5q7+kyUE/LX1T1JqBHRMaKSKmI/DtwI3A+cKGqvtaH7hTgnuD9Q8CiPtLsAOaKyOHANGALgIichhuS2jbUixludu/eHYnWd73P3sPqk7Wzp+Rz95UL+f7583jh1d2856bH+MLv+x8yGk3e30h6n72H1fvsPazeZ+9h9VF7T5d+N5cTkcnAg7i9WI4HVgEtwNPASmCzqrb2o70d+IGqNojI6UClql6flGYGbv+XZ4Fi4GOAAH8FzgHuU9VT+sn/SlwPEEcddVTV0qVLE85PmTKFkpISmpqaKC8vZ8WKFQfkUV1dTXNzM8XFxbS2trJly5aE81OnTiUvL4/29nbKysqoqak5II9FixbR1NRESUkJLS0tbN26dd+5np4eZs6cSVFRES0tLZSUlFBbW3tAHosXL6axsZGysjKam5vZtm3bPn12djYzZ86ksLCQ1tZWiouLWbVqVfK9YMmSJTQ0NFBeXk5TUxPbt2/fpwcoLS0lPz+ftrY2ioqKSN6MLycnh0WLFlFfX8+8efNobGxk+/btCZH0rFmzyM3NpbOzk8LCQurr6xPyyM3Npbq6mrq6OkpLS3n++ecPWBI3e/ZssrOz2b17N/n5+Qes8x8/fjwLFiygtraW6upq6uvr2blzZ0KaOXPm0NPTQ29vL7m5uTz99NMJ5/Py8jj66KPZuHEjVVVVrF69ms7OzoQ0c+fOpauri6ysLLKzs1m7dm3C+XHjxrFw4ULq6uqoqqpi1apV7Nq1KyFNRUUFHR0djBs3jp6eHtatW5fwuRUUFFBRUbEvj9raWl55bTf3rd/D357v5pAc+NTbZrFk2hgm5OfT1dXF+vXrEz63iRMnUl5ezpo1a6isrKSmpobu7sR57/Pnz6e1tZXCwkI6OjpYv359wuc2efJkysrKaGxspKKiguXLl5Nc5xcsWEBLSwv/v70zj4+quvv/+0x2SAgJSJAkhrAEhIRgEjalLIparXaxrWu1j09R22ptaze1i/Z52c3aPj8fqy2oba0FKnVtra0ri2hYEiRAWIKQAIkSlISQIASSOb8/ZoKZYTLJ3MPk5oTv+/XKiwn3vu/53Jk5935z7paUlERbWxs1NTUB03van7Zu3cqYMWO67E9ZWVlUV1d32Z/y8/PZv39/yP4EkJ2dHbY/tbe3M3fu3JD9qYOu+lPH+95Vf+pMqP7U+XML1Z8OHAh8uGZwf1q3bl3A59a5PxUXF1NRURG2P2mtqa6uDpje0Z86ltFVfzp06BBJSUld9qeSkpITywjVn3JycoiPj++yPw0aNIiioqIu+1N7eztFRUUh+1MHofpTa2trwGdXVFREQ0MDycnJJ/pTZ0L1p9bW1oD3Pbg/7dq1K2AZwf3pjTfewOMJ/Nu/oz9lZGTQ0NAQtj9lZmayceNGgunJ/ikrK4utW7cyadKkiPdPAEOHDmXkyJGO9k8d7/vo0aMd7Z86E6o/zZ07t8uby6G17vYHeBWIw3cJdDowBHg5zPwPAtP9r68A7g4xzx+BQf7Xd+ArQn4CfNH/f8t7kq24uFhHi2XLlrni2u7bnN3U74m79f0m/cXfv61zfvCi/szvVumNew+ekrZNfZvfd1Pf5uymvs3ZTX2bs5v6bmcPB1Cmu9jn9+REXH9to48DxfjON3kAyFBKjepi/nI+PiRUCNSEmCcNKFBKxQDTAA3MA25VSi0HJiulHuthPkGwhvHDB/HULdP536sKqW08wqcfXsWPnt/Eiu37eXHnMcp3u3PTJkEQhL5OtzeG8xcVSUopBfxEa/2oUupKfId1hgG7QmjPA28qpUYAlwBXK6Xu01p3vpLoF8CfgBygFFiitX60U7vLtdbzna6YIPRllFJ87pwsLjg7g/99tYo/v1XDX1fvAeAfu0pZcH0xc8dnuJxSEAShbxG2aPHf7fZrwKXA5UCD/8qgM/AdzlkaytNaH1JKzQEuxHcjun1ARdA8a4GJXbWtuzifRRD6E4MS47jn8oloDX9+uwaAY+2aG/9cxojURAqyUinITCU/0/fvkOQEdwMLgiC4SHcjLT8Ftmmtm5VSdwOP4DtZtgX4Db6bzFWHErXWjXRR1NhCUpLzq65NXNt9m7Ob+k7dywtH8Ld1ezh23EtsjIdrpmbT8NFxNtc18XLlx+e7Zw5OIj9zEAWZqRRkDaYgM5X0gfEAlO9u5D97NCm7Gx09+8jm993Utzm7qW9zdlPf5uymvtvZnRLu6qHB+B6Q2HG5whjg3U6ztANr/ee6uEZJSYkOvhpGEGykfHcjq3cdYPqoIQFFx6GjvuJlc10Tm+oOsbmuieoPP77TQObgJLLSEinffRCv1sTHelg0f7rjhzYKgiC4iVKqy6uHwp2ImwbMxXfPlTn4LkvueD0XuA345qmL2fcoLy93xbXdtzm7qW/iFuekMX1Q00nFxqDEOM4dPZSbZ43moWvOYdl351Bxz0Usvmkad186nnPOGsz2+hbavBqvhtbjXt5694NezW67b3N2U9/m7Ka+zdlNfbezO6XLkZYTMyj1MtD5Tlix+K4e2g5kaK3dSe5HRloEwTdKc+2jq2lt8wJwZmoiv/r8JGblneFyMkEQhMhwOtKCUqoQ+DUfX+b8G3wn1r4OXAbsD6NbT/AN1HrLtd23Obup71bbxTlpLL5pOtcVpPDjy84mMS6GG/64lq/9tZy6g0e6X4BB2/3Btzm7qW9zdlPf5uymvtvZndLdibh3AWXAYOAQvvNbmpVSFwKtwPvRjecuwXeP7C3Xdt/m7Ka+m20X56TRXO1lzsxRfGl6Do+9Wc1Db+xg+fYP+MYFY5g/cxTxsV3/nWLz+27q25zd1Lc5u6lvc3ZT3+3sTunu5nIfAYuAScB0fOeyXAcMBR7VWreFcQVBcImE2BhunTuG1+6Yzay8odz/n+188sGVvLkj8nNdBEEQ+grdFS3J+A4JHcY3snIY34MNnwNeUEp9KrrxBEEwISttAAuuL+FPN07B69Vc//havr6onPd6eMhIEAShL9Hd4aHfAXVa651KqdHAbnyHjN7BN+oyLMr5BEE4BcwdN4wZ3xrCY2/u4nfL3mXZtg+4/YKxfGVmbthDRoIgCH2JLrdWSqlk4Ff47oL7SXw3losBqoBn8D3c8MPeCOkWEyZMcMW13bc5u6nfl7MnxsVw2/ljefXbs/nE2KH86j/b+OSDK1m148Oot93XfZuzm/o2Zzf1bc5u6rud3SldFi1a6xZgnv/Oto3A57XWrVrrp/A9DHEHvnNe+i3t7e2uuLb7Nmc39W3Inp0+gIU3lPCn/5pCu1fzpcfXcO2jq3loxR6jhzXasO59sW23fZuzm/o2Zzf13c7ulLDjwlrrw/5/1/iLmI7/11rrfn8irtfrdcW13bc5u6lvU/a544fx8rdmcfWUbN7eeYAny+u5ckEpf1+3N+pt9zXf5uymvs3ZTX2bs5v6bmd3ihzMDkNCgvOH05m4tvs2Zzf1bcueGBdDdvoAPMr3e7tX871nNnL5Q6tYvGYPLa09/7vEtnXvK2277duc3dS3Obup73Z2p0jREobNmze74tru25zd1Lcx+/RRQ4iP9eABEmI9zJ+Zy7E2L3c/t4lpP3uNu57dxOa6pqi03Vd8m7Ob+jZnN/Vtzm7qu53dKd1dPSQIQj+nOCeNRfOns+S1dVwzbwrFOWlorVm/5yBL1u7huXdqWbJ2D5OyUrlm6ll8unAEAxNk0yEIQu8jWx5BEHx30x0df+JhjUopinPSKM5J48eXTeD5d+pYvGYPdz27ifte3MJnzsnk2qlnkZ+Z6nJyQRBOJ6RoEQQhLKlJcXz53JHcMCOH9XsOsnjNHp4pr2XxGt/oy7VTzyI7fQAv7jxGSm7jSU+pFgRBOFVI0RKG5ORkV1zbfZuzm/r9OXvn0ZefXDaB596pZfHaPdz57KYT87ywq5SffTafz5yTSUJszCltP5q+zZ+bqW9zdlPf5uymvtvZnaK01q40fKooKSnRZWVlbscQhNMSrTU/fG4zi9fuCfj/uBjFuOEpFGSmUpA5mILMVPKGJ0dcyAiCcPqhlCrXWpeEmiZXD4WhvLzcFdd23+bspv7pll0pxeeLs0iM+/jqo+9cmMdXZo5icFI8L23ax93PbeLy360i/56XueyhN7nr2U0sXrOHTbVNHGvz3euhfHcjP/zrCqOb252un5upb3N2U9/m7Ka+29mdIiMtgiAYU767kdW7DjB91JCAc1q01uxtOMKmuib/z0E21TZx6Kjv/i/xMR6y0pLY3fARWmviYz0smj9dzosRhNMYGWlxiEkxZFpI2ezbnN3UP12zF+ekMS3l4EnFhlKKs4YM4FOTzuTOS8azaP50Ku65iJXfm8vD1xZx48yRtHs17V6NV8OxNi+rdx3o9fw2f26mvs3ZTX2bs5v6bmd3ipyIG4aWlpbuZ4qCa7tvc3ZTX7J3T0ch01HMXDRhONc+uprWNi9ejeOnTtuw7n3Rtzm7qW9zdlPf7exOkZEWQRBcpTgnjcU3TefyUXHkDh3Ar1/ezvLt+92OJQhCH0SKFkEQXKc4J43P58Xz3NfPY+ywZG5+slwKF0EQTkKKFkEQ+gyDB8SzaP40KVwEQQhJzL333ut2BiMWLlx478033xyVZScnJzNgwIBed233bc5u6kt2cz8xLoZPFZzJ8u0f8ETpbgoyUxk5dGBU2+8r6+6Gb3N2U9/m7Ka+29nD8dOf/vT9e++9d2GoaTLSEobW1lZXXNt9m7Ob+pL91PgdIy5jzvCNuKyo+iCq7felde9t3+bspr7N2U19t7M7RYqWMHg8zt8eE9d23+bspr5kP3V+58Llpr+UdVu49Kd1703f5uymvs3ZTX23sztu15VWLSEmxvktx01c232bs5v6kv3U+mkDe1649Ld17y3f5uymvs3ZTX23sztFipYwbNmyxRXXdt/m7Ka+ZD/1fkfhMtpfuKzsonDpj+veG77N2U19m7Ob+m5nd4oULYIg9HnSBsaz2F+4zA9TuAiC0L+JWtGilHpcKVWqlPpRF9PTlFIvKaXKlFIL/P+XqpT6t1LqFaXUc0qp+GjlEwTBLno64iIIQv8lKkWLUuoKIEZrPQMYpZQaG2K264FF/ocipSilSoDrgN9qrS8C9gGfjEY+QRDsJN1fuOQOHSiFiyCchkRrpGUOsNT/+hVgZoh5DgD5SqnBQDawV2v9iNb6Vf/0MwBX7yw1aNAgV1zbfZuzm/qSPfp++sB4Ft80/UTh8uaOD4zbt2Xdo+HbnN3Utzm7qe92dqcorfWpX6hSjwP/p7WuUEpdBBRprX8ZNE8O8AtgG5AF3Kq1Pu6fNgO4T2t9QRfLvxm4GWDEiBHFixYtCpg+fPhwcnNzqaqqYuLEiaxcufKkZcyYMYPq6mqysrKor69n7969AdMzMzPJysqiurqavLw8Vq1addIyZs6cSVVVFbm5udTW1lJXVxcwPTs7m4yMDGpra8nNzaW0tPSkZcyaNYvKykry8vKorq5m3759AdNHjhxJeno69fX1ZGVlsWbNmuD3gtmzZ1NRUcHEiROpqqpi//7AWm/UqFGkpKTQ0NBARkbGSU/njI2NZebMmaxfv57JkydTWVnJgQOBT9odO3YsCQkJtLS0kJ6ezvr16wOmJyQkMGPGDMrLyykuLqaiooLGxsaAecaNG0dMTAxHjx4lJSWFioqKgOlJSUlMmzbtxDLWr1/PoUOHAuaZMGEC7e3teL1eEhIS2Lx5c8D05ORkSkpKTiyjrKzspAd75efn09raisfjISYm5qQTygYNGkRRUdGJZaxZs4YjR44EzFNYWEhzczOJiYm0t7ezffv2gOlpaWkUFhaeWEZpaelJ9zUoKiqioaGB5ORkWltb2bFjR8D0IUOGMHHiRDZs2EBRURGrVq2ira0tYJ6SkhLq6+tJT0+nubmZXbt2BUwfNmwYeXl5VFZWUlhYyIoVKwju89OmTaO2tpaMjAwaGhqoqakJmN5X+9MrK97m/nVH2XfYyxfz4jnWrrn6gmISmt+LqD+929jOtoZ2xqfHMDY9VvpTJ6Q/nT79qS/tn+bOnVvuPwpzEtEqWh4ElmitV/sPFY3XWv88aJ4/At/SWh9SSt0BtGitFyql0vGNznxea727u7ZKSkp0tB6R3dFBetu13bc5u6kv2XvXbzh8jM89/Ba7Gz4CwKNgUtZgUpPieuQ3HTnOxtqDeDUkxHpYfNN0inPSeiV7X/Ftzm7q25zd1Hc7eziUUr1etNwADNNaP6CU+imwXWu9OGie54AHgNXAYuA14Ang38AvOx0mCks0ixZBEPo+D7y8nd8te/fE78NTE8kYlNgjt/7QUfY1HT3x+7fnjeWb8/JOeUZBEHpOuKIlWue0PA9cr5T6LXAlUKmUui9onl8AC4EmIB1YAnwFKAJ+qJRarpS6Kkr5ekTwUFdvubb7Nmc39SV77/tzxw8jMc6DB0iM8/DwtUW8cOt5Pfp5+NoiEuM8KP+yync3njTcH83sfcG3Obupb3N2U9/t7E6JjcZC/Yd85gAXAvdrrfcBFUHzrAUmBqm/9//0CYKPu/aWa7tvc3ZTX7L3vl+ck8ai+dNZ8to6rpk3JaLDO53duMHDWbJuL48s38mtc8dElMHW987ttt32bc5u6rud3SlRKVoAtNaNfHwFkSAIQtQozkmjeXS8o/NROtzZsws4fKydX7+8nTHDkrl44vAoJBUEwQS5I64gCAK+Kx3u/8IkCrNS+fZTG9jy3qHuJUEQehUpWgRBEPwkxsXw6A0lDEqMY/4T6/igubV7SRCEXiMqVw/1JtG8eqixsZG0tMiHm01d232bs5v6kt1OP9jdXNfEF/7wNhPOHMTim6aTGBf+ibb9ad1PJ9/m7Ka+29nD4cbVQ/2C5uZmV1zbfZuzm/qS3U4/2M3PTOW3V05m/Z6D3P3spm6vKOpP6346+TZnN/Xdzu4UKVrCkJjYs3s9nGrXdt/m7Ka+ZLfTD+VeWnAm356Xx7Pv1PGHFbtCWKembbd9m7Ob+jZnN/Xdzu6UqF091B9ob293xbXdtzm7qS/Z7fS7cm+/YAw79jdz/8vbGDMsmQsnZJzytt32bc5u6tuc3dR3O7tTZKQlDMHPv+gt13bf5uymvmS30+/KVUrxwBcLKchM5Zt/e4et74e+oqg/rvvp4Nuc3dR3O7tTpGgRBEEIQ8cVRSmJscx/oowPW+SKIkFwCylaBEEQuiFjUCKP3lDCgcOtfPXJclrb3BkaF4TTHSlaBEEQesCkrME88MVCynY3cvezmx09o0gQBDPkRNwwmFyDbnr9us2+zdlNfclup99T97JJI9hR38KDr+8gLyOZW2aPNm7bbd/m7Ka+zdlNfbezO0VuLicIghABXq/mG0ve4aXN7/Po9SXM6+KKIkEQnCE3l3NIeXm5K67tvs3ZTX3Jbqcfievx+K4oyh/hu6Jo+77m02bd+5tvc3ZT3+3sTpGRFkEQBAfsazrKp3+3Co3mypJszh+f4egp04IgBCIjLQ4pLS11xbXdtzm7qS/Z7fSduMNTE7njojw+aD7Gw8t2cuWCUh58fQfVHx7G643sj0Hb1r2/+DZnN/Xdzu4UORE3DK2tzu/HYOLa7tuc3dSX7Hb6Tt0DLcdQgAbavZr/fbWK/321ipSEWPIzUynISvX9m5lKTvoAPB51yrOb+jZ/bqa+zdlNfbezO0WKFkEQBIdMHzWEhDgPx457iY/zcN9n82n3ajbWNrG5rok/v1XDsXYvACmJseSP8BUyBR2FzJABrN9zkBd3HiMlt1EOLwlCN0jRIgiC4JDinDQWzZ/OktfWcc28KSeKjqum+KYfa/NSVd/M5romNvl/OhcyA+JjOHq8Ha3hxZrVLJo/XQoXQQiDFC2CIAgGFOek0Tw6PmSxER/rIT/Td4joav//dRQym+qa+NvaPVTUNgHQetzLW+9+KEWLIIRBrh4Kw6FDhxg0aFCvu7b7Nmc39SW7nb5bbZfvbuS6x1bTetyLBsYPT+EvX5nKsJTEXmnf1LXdtzm7qe929nDI1UMOaWhocMW13bc5u6kv2e303Wq74/DS/KnDuOPCPHYf+IjLH1rFO3sae6V9U9d23+bspr7b2Z0iRUsYkpOTXXFt923ObupLdjt9N9suzknjllm53H7BWJ752rnExXi4asFqnlq3p1fat/lzM/Vtzm7qu53dKVK0hMHmy8lO50vpZN3ta9ttv69knzBiEP+8bSZTc9P5wTOb+PHzmznW5o1q+31l3d3wbc5u6rud3SlStIRhx44drri2+zZnN/Ulu51+X8qeNjCeP984hZtnjeLJ1bu57rHVfNAcfgfRX9a9t32bs5v6bmd3ihQtgiAIfYzYGA93X3o2D149mU11TVz+0Co27D3odixBcB0pWgRBEPoon5mcyTNfO5fYGMWVC0pZWrbX7UiC4CpStAiCIPRhJo5I5R+3zWTKyDS+//RGfvLCZo63d3+eiyD0R6RoCcOQIUNccW33bc5u6kt2O/2+nj19YDxP3DiVmz6Ry19Kd3Pdo2sCznPpz+seTd/m7Ka+29mdIjeXC4PX68XjcVbXmbi2+zZnN/Ulu52+Tdlf2FDH95/eSPrAeP7wpWIKswefNut+qn2bs5v6bmcPh9xcziEbNmxwxbXdtzm7qS/Z7fRtyt5xnotHKb64oJQHXtnOj5esonx3ZDekc9J2f/Ntzm7qu53dKTLSIgiCYCENh49xw+Nr2PzeIQDiYhRPfmUq00cNdTkNFIO0AAAgAElEQVSZIJjhykiLUupxpVSpUupHXUxPU0q9pJQqU0ot6KnXm6xatcoV13bf5uymvmS307cxe/rAeC7OH47y/368XXPjn8r4+Utb2fVBS1Tb7i++zdlNfbezOyUqRYtS6gogRms9AxillBobYrbrgUX+aipFKVXSQ6/XaGtrc8W13bc5u6kv2e30bc1+7uihJMR58ADxMR4Ks1P546pqzv/NCq5ZuJp/VLxHa1t7VNruD77N2U19t7M7JTZKy50DLPW/fgWYCQTfPu8AkK+UGgxkA3uBG3rgoZS6GbgZYMSIESxfvjxg+vDhw8nNzaWqqoqJEyeycuXKkwLOmDGD6upqsrKyqK+vZ+/ewPsfZGZm4vV62bJlC3l5eSGrypkzZ1JVVUVubi61tbXU1dWdmNbS0sLOnTvJyMigtraW3NxcSktLT1rGrFmzqKysJC8vj+rqavbt23fCX758OSNHjiQ9PZ36+nqysrJYs2ZN8HvB7NmzqaioYOLEiVRVVbF///4TPsCoUaNISUmhoaGBjIwMgg+nxcbGMnPmTNavX8/kyZOprKwM8AHGjh1LQkICLS0tpKens379+oBlJCQkMGPGDMrLywGoqKigsTHwGPu4ceOIiYnh6NGjpKSkUFFRETA9KSmJadOm8dFHHwGwfv16Dh06FDDPhAkTaG9vx+v1kpCQwObNmwOmdzwPo7y8nOLiYsrKymhpCfyrMz8/n9bWVjweDzExMWzZsiVgekf7HctYs2YNR44cCZinsLCQ5uZmEhMTaW9vZ/v27cDHn1taWhqFhYUnllFaWnrSba+LiopoaGggOTmZ1tZWduzYEfC+DxkyhIkTJ7JhwwaKiopYtWrVSRuKkpIS6uvrSU9Pp7m5+aTPbdiwYeTl5VFZWUlhYSErVqwg+JDwtGnTqK2tpb29nZqaGmpqagKm97Q/HT16lJaWli77U1ZWFtXV1V32J601W7ZsCdmfALKzs8P2p5aWFrxeb8j+1EFX/anjfeuqP3UmVH/q/L6H6k8HDhwIWEZwfwr+3Dr3p+Li4i77U3ZSDL+9fCSvVexmwtA4xqS1cvCsRN6sa2NlXSO3LznAoHjF1dNzmTSwmWT9UcAyJkyYwPHjx6mrq+uyP5WUlITtT21tbdTV1XXZnwYNGkRRUVGX/amlpYXGxsaQ/amDcP2p470L1Z86E6o/Bb/vwf1p165dAcsI7k/BPnzcnzIyMmhoaAjbn7TWJ/nQs/1TVlYWR48epa2tLeL9E/huw9/S0uJo/wS+972mpsbR/qkz3e2fTkJrfcp/gMeBQv/ri4A7Q8yTAywGfgIsBOJ64gX/FBcX62ixbNkyV1zbfZuzm/qS3U7f5uxd+e3tXr18+359y1/K9Ki7/qVzfvCivmZhqf7Hhjrderw9qm3b4tuc3dR3O3s4gDLdxT4/WiMtLUCS/3UyoQ9D3QN8VWt9SCl1B3BjDz1BEAShGzwexey8M5iddwb7Dx3l7+W1LFm7h28seYchA+P5QnEWk7JSWbbzGCm5jRTnpLkdWRC6JSpXDymlbgCGaa0fUEr9FNiutV4cNM9zwAPAanwjLq8Brd15wUTz6qGWlhbHj982cW33bc5u6kt2O32bs0fie72aN9/9kMVrdvPqlnq8/s1/QqyHxTdNd1S42LLufa1tt323s4fDjauHngeuV0r9FrgSqFRK3Rc0zy/wHRZqAtKBJSG8f0UpX4+or693xbXdtzm7qS/Z7fRtzh6J3zH6suD6Em6ZPfrElUetbV6eWrcnqm33Rd/m7Ka+29mdEpWiRWt9CN/JuKuBuVrrCq31j4LmWau1nqi1TtZaX6i1bgnhNUUjX09JT093xbXdtzm7qS/Z7fRtzu7Un3d2hu/KIwUK+HtZLY+u3HXSidrRaLuv+DZnN/Xdzu6UqJ0zorVu1Fov1Vrv635ucy8aNDc3u+La7tuc3dSX7Hb6Nmd36hfnpLFo/nTmT83gr/On8cn84fzspa18828bOHIs/GXSpm33Fd/m7Ka+29mdIie6hiH4crfecm33bc5u6kt2O32bs5v4xTlpnJvWwnljhvLIdUV87+Jx/HPje3z+92+zt+Gj7hdg0HZf8G3Obuq7nd0pUrQIgiAIKKW4de4Y/vhfU9jb+BGf/t0q3nr3Q7djCUIAUrQIgiAIJ5g7bhj/uG0mQ5MTuP7xNTz2ZuTnuQhCtJCiRRAEQQggd+hAnrv1PC6aMJz7/rWVbz8V2XkughAtpGgJw7Bhw1xxbfdtzm7qS3Y7fZuzm/pduckJsTxyXRHfvSiPFyre4wt/eJvaxpPPc+mP6346+G5nd0pUbi7Xm0Tz5nJtbW3Exjq7abCJa7tvc3ZTX7Lb6duc3dTvifvGtnq+uWQDcbEefnftOZw7eugpadtt3+bspr7b2cPhxs3l+gWVlZWuuLb7Nmc39SW7nb7N2U39nrjnj8/ghdvOI31gPNc/vpbHV1WfOM+lv697f/Xdzu4UGWkRBEEQekTz0eN8Z2kFr2yp54pzMvn5FQUkxsW4HUvoZ8hIi0NWrFjhimu7b3N2U1+y2+nbnN3Uj8RNSYzjD18q5tvz8nj2nTouffBNvr7gFcp3N/ZK+6fat/lzM/Xdzu4UKVrCYDIKZTqCZbNvc3ZTX7Lb6duc3dSP1PV4FN+cN5a7LhnPrg8P81L1ca5ZuNpx4WLTuvcn3+3sTpGiRRAEQYiYNq/G43/i4rF2Lw8ve1fu5yJEHSlaBEEQhIiZPmoI8bEePIBHwRvb9vPdv2/k6HG5n4sQPaRoEQRBECKm44GLV4yNY+ktM/jWvLE8s76WKxeU8t7BI27HE/opcvVQGI4cOUJSUlKvu7b7Nmc39SW7nb7N2U39U9n2K5X7uGNpBQmxHh65rohpo4b0avu96druu509HHL1kENqa2tdcW33bc5u6kt2O32bs5v6p7LtiyYO5/lbzyM1KY7rHlvDE2/XdHueS39Zd9t8t7M7RYqWMGRkZLji2u7bnN3Ul+x2+jZnN/VPddtjhiXz/G3nMTvvDO75RyXffzr8eS79ad1t8t3O7hQpWsLQ0NDgimu7b3N2U1+y2+nbnN3Uj0bbgxLjePSGEm4/fwx/L6/lqgWlvN8U+jyX/rbutvhuZ3eKFC1hqKmpccW13bc5u6kv2e30bc5u6kerbY9HccdF41hwfTHv7m/h8odWsbb65B1df1x3G3y3sztFihZBEAQhalzsP88lJTGOax9dzZOl3Z/nIghdIUWLIAiCEFXGZqTw/K3nMSvvDH78QiU/eEbu5yI4Q4oWQRAEIeqkJsXx2A0lfOP8MSwtq+Wqhat5tbKeF3ceM3p2kXB6IUVLGIYPH+6Ka7tvc3ZTX7Lb6duc3dTvzbY9HsV3LhrHH75UxLb3D3HTk2U8s+M41z3m/NlFtqx7X/Pdzu4UublcGFpbW0lISOh113bf5uymvmS307c5u6nvVts//Wclf3qr5sTv540eygNXTuLM1MhuWGbjuvcF3+3s4ZCbyzmkqqrKFdd23+bspr5kt9O3Obup71bbl00aQWKcB4Xv2UVv7fyQ8375BvOfKGPZtv20e3v2B7WN694XfLezO0VGWsLg9XrxeJzVdSau7b7N2U19yW6nb3N2U9/Ntst3N1K680NmjB7KGckJ/G3dHpaW1fJhSyuZg5O4ako2V5ZkMzw1MSrt2/y5mfpuZw+HjLQ4ZOXKla64tvs2Zzf1Jbudvs3ZTX032y7OSSPfU0dxThpnDRnA9z85nrfvPJ9Hriti1BkD+e2rVZz3qze46S9lLNseevTF1nV323c7u1NiXWlVEARBEEIQH+vh0oIzubTgTHYfOMzf1u3l72V7eXVLPZmDk7h6SjZXTskmY1DXoy9C/0WKFkEQBKFPkjNkID/45Hi+PS+P17bWs3jNHn7zahX/7/UdXDB+GFNz09m68xgpuY0U56S5HVfoBaRoEQRBEPo0waMvS9buZcna3byypR6Af1avZslN06VwOQ2Qc1oEQRAEa8gZMpA7LxnPV2aOQvn/71ibl5/9awtNR467mk2IPlG7ekgp9TgwAfiX1vq+ENO/Blzl/3UwsAa4E1gEDAPKtda3dNeO3Kel7/k2Zzf1Jbudvs3ZTX1bs5fvbuS6x1ZzvM0LSuH1atIHxnPnJeP5fFEWHo/qdhm2rvup8N3OHo5ev3pIKXUFEKO1ngGMUkqNDZ5Ha/17rfUcrfUc4E3gUeB6YJE/bIpSKmTo3qK6utoV13bf5uymvmS307c5u6lva/binDQWzZ/O9eeks/SWGbx4+0xyhgzge09v5IsLSql8rylqbfcH3+3sTonW4aE5wFL/61eAmV3NqJTKBDK01mXAASBfKTUYyAb2Rilfj8jKynLFtd23ObupL9nt9G3OburbnL04J43vXlpAcU4aE0ek8vRXz+XXX5hEzYeHufyhVdz7j8qwh4xsXndT3+3sTonWibgDgTr/6wagKMy8twK/979eBXwKuB3Y6ndPQil1M3AzwIgRI1i+fHnA9OHDh5Obm0tVVRUTJ04MeT35jBkzqK6uJisri/r6evbuDayPMjMzaWtrQ2tNXl4eq1atOmkZM2fOpKqqitzcXGpra6mrqzsxrbW1lTFjxpCRkUFtbS25ubmUlpaetIxZs2ZRWVlJXl4e1dXV7Nu374SfkJDAyJEjSU9Pp76+nqysLNasWRP8XjB79mwqKiqYOHEiVVVV7N+/P2DobtSoUaSkpNDQ0EBGRgbBh9NiY2OZOXMm69evZ/LkyVRWVvLee+8FDP2NHTuWhIQEWlpaSE9PZ/369QHLSEhIYMaMGZSXlzN48GB27txJY2Pgs0TGjRtHTEwMR48eJSUlhYqKioDpSUlJTJs2jbKyMubMmcP69es5dOhQwDwTJkygvb0dr9dLQkICmzdvDpienJxMWloa27dvp7i4mLKyMlpaWgLmyc/Pp7W1FY/HQ0xMDFu2bAn5npaXl1NcXMyaNWs4cuRIwDyFhYU0NzeTmJhIe3s727dvD/jc0tLSKCwsPLGM0tJSWltbA5ZRVFREQ0MDycnJtLa2smPHjoDPbciQIUycOJENGzZQVFTEqlWraGtrC1hGSUkJ9fX1pKen09zczNatWwM+t2HDhpGXl0dlZSWFhYWsWLGC4EPC06ZNo7a2lmPHjjFw4EBqamoCpve0P23atImCgoIu+1NWVhbV1dVd9qcRI0bQ1tYWsj8BZGdnh+1Pra2tXHjhhSH7Uwdd9aeO972r/tSZUP2p8+cWqj8dOHAgYBnB/am0tDTgc+vcn4qLi6moqAjbn5qamk5qo6M/dSyjq/5UV1fHsGHDuuxPJSUlJ5YRqj+lp6czZMiQLvvToEGDKCoq6rI/tba2MnXq1JD9qYNw/anjve/oT3NHJpN/bR4PvLyNJ96u4dmyGq4aF8/lBRnk5+cH9KfDhw8HvO/B/WnXrl0BOYL709tvv018fHzAPB39KSMjg4aGhrD9KSkpidraWoLpyf4pKyuLiooKpk2bFvH+CWDAgAFMmDDB0f6p430fN26co/1TZ7rbP52E1vqU/wAPAtP9r68A7u5iPg9Qysfn1vwRGOR/fQdwc3dtFRcX62ixbNkyV1zbfZuzm/qS3U7f5uymvs3Zu/M31R7Un314lc75wYv6C79/S1fWNfVa233ddzt7OIAy3cU+P1qHh8r5+JBQIVDTxXyfANb4QwKkAQVKqRhgGmD3MwYEQRAE18jPTOWZr57L/Z+fxM4PDnPZQ29y7z8qOXRUrjKylWgdHnoeeFMpNQK4BLhaKXWf1vpHQfNdDHQea/4F8CcgB98IzJIo5RMEQRBOAzwexZVTsrloYgYPvLKdJ0preHHj+1w7NZu6vXJjOtuIStGitT6klJoDXAjcr7XeB1SEmO/uoN/XAhOjkUkQBEE4fRk8IJ77PlvAVSVnccfSDfzfG+8C8GL1ahbLjemsIWo3l9NaN2qtl/oLFivJzMx0xbXdtzm7qS/Z7fRtzm7q25zdiV+QlcpnJo84cWO61jYvP39pq6NDRrate19p24So3Vyut4jmzeWOHDlCUlJSr7u2+zZnN/Ulu52+zdlNfZuzO/U7bkx3rM2LUop2r+aMlAR+eOnZvoJGdX9jOqdt9xXf7ezh6PWby/UXbL5xz+l80yJZd/vadtu3Obupb3N2p/6JG9NNTmPpLTP4x23nMSI1kW89tYGrFq5m+77mqLXdV3y3sztFRlrC0NbWRmyss9N+TFzbfZuzm/qS3U7f5uymvs3ZTf3OrtereapsL7/6zzaaj7bxX+eO5FvzxpKSGBeVtt323c4eDhlpcUioG/b0hmu7b3N2U1+y2+nbnN3Utzm7qd/Z9XgU10w9i2XfmcOVJdn88a1qzv/NCl7YUHfSDRlPRdtu+25nd4oULYIgCILgJ21gPL+4ooDnvn4eZ6Ym8s2/beDqhaupqu/ZISMhukjRIgiCIAhBTM4ezHNfP4+ff66A7fXNXPLgm9z34haa5cZ0riJFiyAIgiCEIMajuHbaWbzxnTlcWZLFY6uquaCbQ0ZCdJGiRRAEQRDCkD4wnl9cMYnnvn4uGYN8h4wuf2gVT1S2srb6QPcLEE4ZcvVQGGw+M/t0Pitd1v30y27q25zd1Lc5u6nvxG33an71n20sXPnxE6DHDktm+qghFGSmkp+ZytiMZOJiuh8TsG3dT6UfDrl6yCFVVVWuuLb7Nmc39SW7nb7N2U19m7Ob+k7cGI8iNSkOj//+cwo4cryd596p4/vPbOTS/3uT/Hte5rMPv8WPn9/M0rK9bH3/EG3t3lOa3dR3+3Nzioy0hMHmuw2ezndalHU//bKb+jZnN/Vtzm7qO3U77qh7vM1LXKyHRfOnc072YKoPHGZzXRObapvYVNdE5XuHaGltAyAh1sPZZw5iUpZvNCbWo9j9QTOzxg93/Nwjmz/3cMhIi0Nqa2tdcW33bc5u6kt2O32bs5v6Nmc39Z26HXfU/XLxUBbN9z1s0eNRjD4jmc9MzuRHl03gqVtmsPGei3j9O7N58OrJfGl6DvGxHp4pr+X7T2/kjqUVPLhsF1ctKOWVSmeP6LP5c3eKFC1hqKurc8W13bc5u6kv2e30bc5u6tuc3dQ3cYtz0pg19EjYUZLOhcyPL5vA0ltmsOnei/nvmbknHtjY5tXc8mQ5858oY9m2/bR7e370w+bP3SlStAiCIAhCL+HxKD5VcCYJcR48+A4bfe6cTDbsPciNf17HrPuX8X+v72Bf09GoZSjf3ciLO49RvrvRFd+E6Jz6KwiCIAhCSDoOLy15bR3XzJtCcU4ax9q8vLa1niVr9/DbV6t48PUdnD9+GNdOPYtZeWcQ4+nZk6dD0dbu5d0PWthU28Qb2/bzn8p9aA1P73ibgfExxPbgSqfOyzp8rB2AF2tWnzg81ltI0SIIgiAIvUxxThrNo+NP7PDjYz1cWnAmlxacye4Dh1mydi9Pl+/l1S31ZA5O4qop2Vw1JZuMQYlhl9vW7mXnB4fZVNfEptqDbKprYsv7hzh63Hf1UlyMouP6GwWMG57CpKzBPc69sfYg6/ccBOB4m5fVuw5I0dJXyM7OdsW13bc5u6kv2e30bc5u6tuc3dTvq9lzhgzkzkvGc8eFeby6JXD05YLxw7hm2lkkJ8Sy4sMkGtfX0a41m+ua2Fh7MKBAGRAfQ/6IVK6dmkNB1iAKMgfT+NExrn98DcfavMTHevjhpyZEVHR0XDl1zH/l1PRRQ4zeg0iRS57D0NLSQnJycq+7tvs2Zzf1Jbudvs3ZTX2bs5v6NmWv+fAwS9bt4emyWg4cPnbS9AHxMUwc4StMfAVKKrlDk0MeVirf3cjKbe8za/yZjkZJTP3ukEueHWLz5WQ2XkbYH3zJbqdvc3ZT3+bspr5N2UcOHchdl5xN6V0XcHnhmSf+Xyn475kj2XTvxfz9q+fyk8sn8LlzshgzLKXL82CKc9K4JMfjuOAw9U2QkZYwtLa2kpCQ0Ouu7b7N2U19yW6nb3N2U9/m7Ka+rdlD3dwu0gLC7XUPh4y0OKS0tNQV13bf5uymvmS307c5u6lvc3ZT39bsHVcffW5MnOOrd9xed6fIibiCIAiCYBnBVx+dLshIiyAIgiAIViBFiyAIgiAIViBFiyAIgiAIViBXD4XB6/Xi8Tir60xc232bs5v6kt1O3+bspr7N2U19m7Ob+m5nD4dcPeSQyspKV1zbfZuzm/qS3U7f5uymvs3ZTX2bs5v6bmd3ioy0hOF0vP7/VPg2Zzf1Jbudvs3ZTX2bs5v6Nmc39d3OHg4ZaXFIdXW1K67tvs3ZTX3Jbqdvc3ZT3+bspr7N2U19t7M7RYqWMOzbt88V13bf5uymvmS307c5u6lvc3ZT3+bspr7b2Z0iRYsgCIIgCFYgRYsgCIIgCFYgRYsgCIIgCFZg/dVDSqkPgN1RWvxQ4EMXXNt9m7Ob+pLdTt/m7Ka+zdlNfZuzm/puZw9Hjtb6jJBTtNby08UPUOaGa7tvc/bTed1tzi7rLutuW9tu+25nd/ojh4cEQRAEQbACKVoEQRAEQbACKVrCs9Al13bf5uymvmS307c5u6lvc3ZT3+bspr7b2R1h/Ym4giAIgiCcHshISz9BKZWulLpQKTXU7SzC6YdS6kyl1DylVIrbWYTTA9nmnZ5I0dIFSqkMpdSbJo5S6myl1As98FKVUv9WSr2ilHpOKRUfSftKqTTgRWAqsEwpdYZB/ndCrUsYJ1YptUcptdz/U6CUGqCU2hBh248opS6PpG3/vF/r1PYGpdSCSN87pdRLSqkypdSCSNpXSuUqpf6llHpTKfWbSLOb0JPvmlJqtlLq0e58pdRZ/vfvDaXUQqWU6mqZXfh5wFPAecAKpVR8OD/Ue6SUyldKvRpufbpoO1MpVdvpO3BGV2100/4/lVKTHbT/005tb1NK3dXTdVdKjVJKve7/3v7YQdtFSqnXlFJvKaW+0xPfKT3dRoVZ72D/pOUFr183fgZB27yu/G7aeqfTfD1tO14FbfP884Xc7oVp/8Q2L8L2v6mCtnkRrHuGCtreRdj2OBW0zQvnRwU3Llnq6z9AGvAfYL1TBxiNr1Mt74H7deBC/+vfA1+OpH1gNjDd//oB4KpI8/vdJ4Ftkaw/UAT8qtPvMf71romg3U8Azzp97zst5yFgSoTv3e3Adf7XiyPxgaWd3vengM9F4GYAb/pfxwH/BN4C/rvTPGcDLzj5rgHTgTeAP/fA/xlwtv/1v4FJ4b6/IfwvAKP9r58GxnXlh/p8AQW80jFvhG1fAXytuza6af864P91+r3H7QdNexrI7Om6A78FzvO/XgWcEeG6vwVk+9+/t4HcMG2n+j/bV4DngHjgcaAU+FGo72WQ3+02qpvswf7tQb9/upv3Nti/h8Bt3sVd+SHcT/tfPwls68HnGuz/hE7bPP//d7ndC9U+nbZ5Dtr/dKdpDwElEax78PauS7cLv4HAbd6ccH40fmSkJTTt+Hb8hwycZuDzPRG11o9orTv+yjwDqI6kfa31Cq31aqXULHx/efw7Eh9AKXU+cBjYR2TrPx24TCm1Vin1OBAL3AzU9LDdOOBRoEYp9ZkI2+68nEx8G9ztEfoHgHyl1GB8O4D9Efh5wHr/6/2Atyeu8o2MPQEM9P/XN4ByrfV5wBeUUilKqdHAr/HtbILpyXdtLzC/iwgBvtb6h1rrrf5pQ/DdMCrc9zfYfxrYrZT6FL4N2Lth/FCf743Ask6/97htfN+/+Uqp9Uqpn4dpI6SvlEoHfgM0KqXmOmgf/3KmALVa67owfrB7AJjkHzVIAA5G2Ha61nqv9u1BDgCDwvjXAb/VWl+Er49fDcRorWcAo5RSY0N8L0/Qw21Ul9lD+GuDft8fYv3C+S8HbfNKu/JDuPuDtndE2HYbnbZ5SqlY/7SQ270QfiOB27xI298PH2/ztNZlEax7CoHbu70Rtj2AwG1eajg/GkjREgKt9SGtdZOJo7Xer7VujWQZSqkZQJrWemWk7SulFL4vTiNwPBLfP1z5Y+BOiHj91wHztNZT8Y0YXKy1fi+C6DcAW4D78W18vhzpuvu5Ffi9g89uFZCD7y+QrcB7EfhPA/f4h3g/CbzeQze4k8/BN2oDsBLfXz/hdgDdftf8O09vT/wOlFJXAZVa6/fCfX+78JOBK/HdnVp35Qe7SqkhwJfw/bXc5fqEafvf+N6/KcAMpdSkcN+BENO+DfwdWADcoJT6tIN1B/gmvr96u8wfwv0PvqLrdnyjYm0Rtv2WUuo2pdS1wEhgY5i2g3c+X+Lj79wrwEx6sPMJt43qyTavk786+Pee9N3O84fY5oX1O1x8O90T2zt/9h63DbxK4DbvUq11e3fbvU5+Hp22eUqpb0S67v7/uhXf6Ee3+Tu1/VcCt3cNEa77fZy8zYt4f2mCFC19BP9ffA8B/+3E1z5uBTbiG36MhDuBR7TWBx00vVFr/b7/dRkwNkL/HGCh1nofvg41t5v5T0Ip5fF7yyN18Q0zf1Vr/T/4Do3d2FNRa30fvp3mfOAJrXVLD73gTj4QqPO/bsD311PERa8JSqlRwHeBbznxtdYHtdZfxrcRnxKB+kvgLq31cSftAm9rrZu11u3AOzj7/j3s//4txVcARYT/r9ZhWuudEap3Av+ltf4hkARcGKF/C77v7G34Dld0eylop53PXk7+znW34zPaRgX7kS4veP5ItnlBbsTbuyA/4m1ekB/xNi/Ee9fjbV6QG/H2rrPvdJt3KpGipQ/gH+n4O76Nd8TPUVJK/UApdYP/18H4hpkjYR5wq1JqOTBZKfVYBO6TSqlCpVQM8FmgIsK23wVG+V+X4Ow5Up8A1vRkox2CNKDAn38aEOkyNgBn4Ts/wSkt+HZa4Bux6NV+6T8ssATfRiniv5iUUr/3D9ND5N+/2cCvOn337ouw+ZeV78qlAcBFwOYI/VPx/fsM8O+HDr4AAAKkSURBVJIDLxfIVkol4js3LKLvnr9Q2+7/dVF38wftvCL6zp2CbVSAH+nyQvg93uaFaCui7V0IP6JtXgg/ou9cF+9Vj7Z5IdyItnddtH0qtnmOkaKlb/AVfButHyrfGeFXRegvBK5XSq3Ed0LYK5HIWutZWus5Wus5wAatdVfnQoTif/Cd0LYBKNVavxZJ2/hOBpzrz/51Oh0miICL8R1WccIv8L1/TUA6vp13JHwP37kCHzlsH6Ac3/A8QCE9PB/oFHInvo3QQ/7v3+wI/fuBn/uvHlirtd7endCB1jov6Lv3owjb/im+82FWA3+IpG0/9wO3KaXeAmYBf4zQB+ffv3vw/aX8Ab6RjzccLOM+4AcOdl6RfudMt1EBPnBXhMsL9mvo+TYv2H04wu1dsF9JZNu8YL+RyLZ5od77nn7ngtteTWTbu1Btn4ptnmPk5nKC4BJKqeVa6zlKqRx8f6m/BpyL7+z89s7zuBhT6Acopb4G/JyPRwX+BNwBvA5cgu871+SfV75zQp9FihZB6AMopUbg+8v35d48qU04ffEfFrwQWOk/v0IQ+jxStAiCIAiCYAVyTosgCIIgCFYgRYsgCIIgCFYgRYsgCH0apdSflVIzlVLJyveslQK3MwmC4A5StAiCYAuPAA9prTe5HUQQBHeQE3EFQejTKKX+jO95L+la6ytcjiMIgovEdj+LIAiC68wFDiulPFrrkM9UEgSh/yOHhwRBsIFb8d0Y7Tq3gwiC4B5StAiCYAMtwL34bice53IWQRBcQooWQRCswP8U5ZX4njArCMJpiJyIKwiCIAiCFchIiyAIgiAIViBFiyAIgiAIViBFiyAIgiAIViBFiyAIgiAIViBFiyAIgiAIViBFiyAIgiAIViBFiyAIgiAIVvD/AR7UlTChFrN4AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 648x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data=pd.read_excel('北京市空气质量数据.xlsx')\n",
    "data=data.replace(0,np.NaN)\n",
    "data=data.dropna()\n",
    "X=data.loc[:,['PM2.5','PM10','SO2','CO','NO2','O3']]\n",
    "Y=data.loc[:,'质量等级']\n",
    "\n",
    "testPre=[]\n",
    "X_train, X_test, Y_train, Y_test = train_test_split(X,Y,train_size=0.70, random_state=123) \n",
    "Ntrain=len(Y_train)\n",
    "K=np.arange(1,int(Ntrain*0.20),10)\n",
    "for k in K:\n",
    "    modelKNN=neighbors.KNeighborsClassifier(n_neighbors=k,weights='distance')\n",
    "    modelKNN.fit(X_train,Y_train)\n",
    "    testPre.append(modelKNN.score(X_test,Y_test))\n",
    "plt.figure(figsize=(9,6))\n",
    "plt.grid(True, linestyle='-.')\n",
    "plt.xticks(K)\n",
    "plt.plot(K,testPre,marker='.')\n",
    "plt.xlabel(\"K\")\n",
    "plt.ylabel(\"测试精度\")\n",
    "bestK=K[testPre.index(np.max(testPre))]\n",
    "plt.title(\"加权K-近邻的测试精度(1-测试误差)变化折线图\\n(最优参数K=%d)\"%bestK)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "说明：利用北京市空气质量监测数据，采用K-近邻法对空气质量等级进行预测。\n",
    "1、采用加权K-近邻法，采用倒数加权。\n",
    "2、应依据训练误差确定K-近邻法关键参数K，这里采用旁置法计算。指定训练集占70%，测试集占30%。\n",
    "3、K-近邻参数K的取值范围，从1-近邻开始，每次增加10个步长。指定近邻占比率为20%，K的最大取值为样本量的20%，这里为291。\n",
    "4、从右向左观察精度曲线。随近邻个数K从最大值291开始逐步减少，模型复杂度不断增加，测试精度呈先上升后下降，也即测试误差呈先下降后上升的形态。当K=11时测试精度最高，测试误差最小。K小于11后测试精度下降误差上升，表明出现了模型过拟合。因此参数K不能小于11，最优值应设置为11。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "评价模型结果：\n",
      "               precision    recall  f1-score   support\n",
      "\n",
      "        严重污染       0.98      0.98      0.98        43\n",
      "        中度污染       0.95      0.95      0.95       252\n",
      "           优       0.99      0.98      0.98       377\n",
      "           良       0.98      0.99      0.98       827\n",
      "        轻度污染       0.97      0.97      0.97       470\n",
      "        重度污染       0.98      0.93      0.96       127\n",
      "\n",
      "    accuracy                           0.98      2096\n",
      "   macro avg       0.97      0.97      0.97      2096\n",
      "weighted avg       0.98      0.98      0.98      2096\n",
      "\n"
     ]
    }
   ],
   "source": [
    "modelKNN=neighbors.KNeighborsClassifier(n_neighbors=bestK,weights='distance')\n",
    "modelKNN.fit(X_train,Y_train)\n",
    "print('评价模型结果：\\n',classification_report(Y,modelKNN.predict(X)))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
